UTILS.
۱۰۰٪ در مرورگر
🔢

مبدل مکمل دو

اعداد صحیح علامت‌دار را به/از باینری و hex مکمل دو در عرض 4، 8، 16، 32 یا 64 بیتی تبدیل کنید، با مکمل یک و تفسیر بدون‌علامت.

یک عدد یا الگوی بیتی در بالا وارد کنید.

درباره این ابزار

مبدل مکمل دو، یک عدد صحیح علامت‌دار را به بازنمایی باینری و hexadecimal مکمل دو در عرض بیتی که انتخاب می‌کنید (4، 8، 16، 32 یا 64 بیت) رمزگذاری می‌کند، و یک الگوی باینری یا hex را به مقدار علامت‌داری که بازنمایی می‌کند رمزگشایی می‌کند. در سراسر از BigInt استفاده می‌کند، بنابراین مقادیر 64 بیتی به‌طور دقیق و بدون از دست دادن دقت مدیریت می‌شوند.

برای عرض N بیت، بازه‌ی علامت‌دار از −2^(N−1) تا 2^(N−1)−1 است. برای رمزگذاری یک اعشاری d: اگر d نامنفی باشد الگو صرفاً d است؛ اگر d منفی باشد الگو برابر 2^N + d است (معادلاً، همه‌ی بیت‌های |d| را معکوس کن و 1 اضافه کن). ابزار باینری N بیتی صفرپرشده، hex با N/4 رقم، مکمل یک (NOT بیتی)، و تفسیر بدون‌علامت همان بیت‌ها را خروجی می‌دهد، و وقتی مقداری در عرض انتخاب‌شده جا نگیرد یک خطای سرریز علامت‌گذاری می‌کند.

برای رمزگشایی، یک الگوی باینری یا hex بچسبانید و ابزار بیت بالای آن را می‌خواند: اگر پرارزش‌ترین بیت تنظیم شده باشد مقدار برابر pattern − 2^N (منفی) است، در غیر این صورت خودِ الگوست. همیشه هر دو قرائت علامت‌دار و بدون‌علامت را کنار هم نشان می‌دهد، که دقیقاً همان ابهامی است که مکمل دو در سطح سخت‌افزار حل می‌کند. تمام محاسبه محلی در مرورگر شماست.

پرسش‌های پرتکرار

بازه برای هر عرض بیت چیست؟
عرض N بیت مقادیر علامت‌دار از −2^(N−1) تا 2^(N−1)−1 را بازنمایی می‌کند. بنابراین 8 بیتی از −128 تا 127، 16 بیتی از −32768 تا 32767، و 32 بیتی حدود ±2.1 میلیارد را در بر می‌گیرد. مقادیر خارج از بازه یک هشدار سرریز فعال می‌کنند.
یک عدد منفی چگونه رمزگذاری می‌شود؟
بزرگی را بگیرید، هر بیت را معکوس کنید (مکمل یک)، و 1 اضافه کنید. معادلاً الگو برابر 2^N به‌علاوه عدد منفی است. برای مثال −1 در 8 بیت برابر 11111111، و −42 برابر 11010110 است.
چرا مقدار بدون‌علامت نیز نشان داده می‌شود؟
همان الگوی بیتی دو قرائت دارد: علامت‌دار (مکمل دو) و بدون‌علامت. نمایش هر دو روشن می‌کند که، برای مثال، الگوی 8 بیتی 11111111 برابر −1 علامت‌دار اما 255 بدون‌علامت است — تفسیر به نحوه‌ی رفتار سخت‌افزار بستگی دارد.
آیا می‌تواند مقادیر 64 بیتی را دقیق مدیریت کند؟
بله. مبدل از محاسبات BigInt با دقت دلخواه استفاده می‌کند، بنابراین الگوهای 64 بیتی و مقادیر علامت‌دار آن‌ها دقیق محاسبه می‌شوند، بدون گرد کردنی که اعداد عادی جاوااسکریپت فراتر از 2^53 وارد می‌کنند.

ابزارهای بیشتر