تبدیل دودویی
عدد دودویی 1010 در دهدهی برابر 10 است. عدد دهدهی 255 در دودویی بهصورت 11111111 نوشته میشود.
روش استفاده
- عددی را در هر یک از چهار کادر دودویی، هشتهشتی، دهدهی یا هگزا تایپ کنید. سه کادر دیگر فوراً بهروز میشوند. علامت منفی، فاصله، زیرخط و پیشوندهایی مثل 0b، 0o و 0x پذیرفته میشود.
- گزینه گروهبندی بیتها به چهارتایی را بزنید تا خواندن عددهای دودویی بلند آسانتر شود.
- برای تبدیل متن، آن را در کادر متن تایپ کنید تا دودویی در گروههای 8 بیتی ظاهر شود. یا دودویی را در کادر دودویی بچسبانید تا متن نشان داده شود. فاصله بین گروهها اختیاری است.
روش محاسبه
هر کادر رقم به رقم در مبنای خودش خوانده و بهصورت BigInt ذخیره میشود، پس مقدارهای خیلی بزرگ هم بدون گرد شدن دقیق تبدیل میشوند. کادرهای دیگر از همان یک مقدار نوشته میشوند.
عدد منفی علامت منفیاش را نگه میدارد (1010- یعنی 10-) و بهصورت مکمل دو نشان داده نمیشود. برای مکمل دو با عرض ثابت، شکل مثبت را بگیرید و خودتان وارونه کنید.
متن اول با UTF-8 کدگذاری میشود و بعد هر بایت در 8 بیت نوشته میشود. حروف ساده انگلیسی یک بایت میگیرند، حروف فارسی و عربی، حروف دارای نشانه و بیشتر نمادها دو یا سه بایت و ایموجی چهار بایت. رشته دودویی فقط وقتی به متن برمیگردد که طولش مضرب 8 باشد و بایتهایش UTF-8 معتبر بسازند.
مقدارهای رایج
| دهدهی | دودویی | هشتهشتی | هگزا |
|---|---|---|---|
| 10 | 1010 | 12 | A |
| 42 | 101010 | 52 | 2A |
| 100 | 1100100 | 144 | 64 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
| 1024 | 10000000000 | 2000 | 400 |
پرسشهای رایج
چطور دودویی را دستی به دهدهی تبدیل کنم؟
ارزش مکانیهای 1، 2، 4، 8، 16 و ... را از راست بنویسید، بعد ارزشهایی را که رقمشان 1 است جمع کنید. برای 1101 میشود 8 + 4 + 1 = 13.
چطور دهدهی را به دودویی تبدیل کنم؟
پشتسرهم بر 2 تقسیم کنید و هر باقیمانده را بنویسید. باقیماندهها را از آخر به اول بخوانید. برای 13: 13 ÷ 2 = 6 باقیمانده 1، 6 ÷ 2 = 3 باقیمانده 0، 3 ÷ 2 = 1 باقیمانده 1، 1 ÷ 2 = 0 باقیمانده 1، پس 13 میشود 1101.
چطور دودویی را به هگزا تبدیل کنم؟
عدد دودویی را از راست به گروههای 4 بیتی تقسیم کنید و هر گروه را با یک رقم هگزا عوض کنید. 1010 1111 میشود AF. گزینه گروهبندی چهارتایی را بزنید تا گروهها را ببینید.
چرا یک حرف 8 رقم دودویی میشود؟
کامپیوترها متن را در بایت ذخیره میکنند و هر بایت 8 بیت است. حرف A بایت 65 است، یعنی 01000001. نویسههای خارج از انگلیسی ساده در UTF-8 بیش از یک بایت میگیرند.
چرا وقتی دودویی میچسبانم خطا میگیرم؟
تبدیل به متن فقط 0 و 1 میخواهد (فاصله و زیرخط نادیده گرفته میشود)، طول کل مضرب 8 و بایتهایی که UTF-8 معتبر بسازند. یک رقم اضافه یا یک بیت کم یکی از این شرطها را میشکند.
آیا محدودیت اندازه دارد؟
تبدیل عدد محدودیت ثابتی ندارد چون از BigInt استفاده میکند، هرچند تایپ در ورودیهای خیلی بلند کندتر میشود. چیزی که وارد میکنید به هیچ سروری فرستاده نمیشود.