PDA

View Full Version : سوال: ديدن فايل ها به صورت باينري



negarsoft
شنبه 13 تیر 1388, 04:50 صبح
سلام
چجوري يك فايل رو بصورت باينري ببينم البته كدش مي خوام (c++)
ممنون:لبخندساده:

tdkhakpur
شنبه 13 تیر 1388, 10:42 صبح
سلام
هر فایلی که باینری نیست مگر اینکه تبدیل کنید.

negarsoft
چهارشنبه 17 تیر 1388, 13:26 عصر
سلام
نه منظورم از باينري وضعيت هر بيت است يعني وضعيت هر بيت رو در طول محدوده ي فايل بررسي كنه

tdkhakpur
چهارشنبه 17 تیر 1388, 13:31 عصر
سلام
برای این کار شما باید بایتها را یک به یک از فایل خارج و تبدیل به بیت کرده و مجددا داخل یک فایل جدا قرار بدید.

Nima_NF
چهارشنبه 17 تیر 1388, 16:21 عصر
شما از طریق توابع خواندن فایل حداقل یک بایت باید از فایل بخوانید. سپس آن بایت را توسط عملگر AND (&) می توانید دریافت و بررسی کنید،فقط برای یک مثال:



int number = 12; // 1100

int n5 = number & 0x10 ; // 10000
int n4 = number & 0x8 ; // 1000
int n3 = number & 0x4 ; // 0100
int n2 = number & 0x2 ; // 0010
int n1 = number & 0x1; // 0001

در موارد فوق مقادیر غیر صفر نشاندهنده 1 بودن همان بیت هست.

negarsoft
چهارشنبه 31 تیر 1388, 06:45 صبح
سلام من هرچي فكر كردم نفهميدم مي شه بيشتر توضيح بديد

tdkhakpur
چهارشنبه 31 تیر 1388, 13:14 عصر
سلام
خوب ببینید ما فرض برا آن میگیریم که شما کار با فایل را میدانید.
برای این کار یک فایل دیگر ایجاد کنید.و همچنین فایلی را که میخواهید باینری ان را ببینید باز کنید یک بایت از فایل را خوانده و در chr قرار بدید. حال الگوریتم آقای نیما را روش پیاده سازی کنید. به صورت زیر:


char *buff[8];
int c=0;
for( int i=1; i<=128; i*=2){
buff[c] = (chr & i)==0 ? '0' : '1';
c++;
}

حالا میتوانید buff را که اندازه اش 8 بایت هست داخل فایل دوم قرار بدید و به همین ترتین بایتهای دیگر را از فایل خوانده و عملیات فوق را تکرار کنید.

negarsoft
چهارشنبه 31 تیر 1388, 14:12 عصر
سلام اين يكي قابل فهم تر بود
كار با فايل رو در حد استفاده از fstream.h مي دونم فكر كنم كه كافي باشه اما يك سوال ديگه چه جوري دوباره بنويسم مثلا" من مي خوام يك فايل رو بازكنه بعد دو بار شيفت به راست كنه ودوباره به صورت باينري بنويسه چون نرم افزارهاي اوپن سورسي هم هست ولي فكركنم كه نا كارامدند چون با تغيير مثلا"1به0 وبعد دوباره 0به1خروجي همون فايل اولي نميشه وكلا"به هم مي ريزه
ممنون