PDA

View Full Version : تجزیه و تحلیل یک مقدار decimal از رجیستری



mi5coder
جمعه 05 مهر 1387, 18:06 عصر
با سلام
سوال خودم رو با یک مثال شروع میکنم , NoDriveTypeAutoRun یک نوع dword در رجیستری است. که طبق گفته میکروسافت (http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/regentry/93502.mspx?mfr=true) یکی از مقادیر جدول زیر یا جمع چند تا از انهاست.

0x1
Disables Autoplay on drives of unknown type.

0x4
Disables Autoplay on removable drives.

0x8
Disables Autoplay on fixed drives.

0x10
Disables Autoplay on network drives.

0x20
Disables Autoplay on CD-ROM drives.

0x40
Disables Autoplay on RAM drives.

0x80
Disables Autoplay on drives of unknown type.

0xFF
Disables Autoplay on all types of drives.


حال اگر فقط یکی از مقادیر باشد که فهمیدن ان ساده است. ولی اگر مثلا مقدار ما جمع چند تا از مقادیر فوق باشد, انوقت چگونه متوجه شویم که مثلا یکی از اینها در این جمع هست و یا نه ! ؟

این گزینه به صورت دیفایت 95 است (به صوت هگزادسیمال) , که به گفته میکروسافت جمع 1+80+4+10 است.
حال اگر این مقدار توسط یوزر و یا برنامه ای تغیییر کند, ما از کجا بدانیم که مثلا شماره 8 در این جمع وجود داشته ؟؟؟
امیدوارم که تونسته باشم منظورم رو بگم

mi5coder
شنبه 06 مهر 1387, 14:45 عصر
any idea ;(

vcldeveloper
شنبه 06 مهر 1387, 17:40 عصر
با استفاده از عملگرهای باینری مثل OR, AND, XOR . در واقع این یک مقدار باینری هست که اگر با هر یک از این عددها OR یا AND بشه، یکی از بیت هاش 1 میشه، مثلا:
FF = 11111111
x80 = 01000000