تبدیل متن به باینری و برعکس

متن را وارد کنید تا به کد باینری (و هگز) تبدیل شود؛ یا باینری را به متن برگردانید.

خروجی

هگزادسیمال

دسیمال

این ابزار کاملا در مرورگر شما اجرا می‌شود و هیچ داده‌ای به سرور ارسال نمی‌شود.

فهرست مطالب

تبدیل متن به باینری با این ابزار همزمان با تایپ انجام می‌شود. در حالت متن به باینری، هر متنی بنویسید، فارسی یا انگلیسی یا ترکیبی، تا سه نمایش آن ظاهر شود؛ دودویی، یعنی هر بایت با هشت رقم صفر و یک، هگزادسیمال، یعنی هر بایت با دو نویسه از صفر تا F، و دهدهی، یعنی هر بایت با عددی بین صفر تا ۲۵۵. بایت‌ها با فاصله از هم جدا می‌شوند. در حالت باینری به متن، رشتهٔ صفر و یک را بچسبانید؛ گروه‌های هشت‌بیتی با فاصله، یا یک رشتهٔ پیوسته که ابزار خودش هشت‌تا‌هشت‌تا جدا می‌کند. ابزار متن را با کدگذاری UTF-8 تبدیل می‌کند، پس فارسی، عربی و شکلک‌ها هم درست کار می‌کنند. متن نمونهٔ ابزار، یعنی Hi و سلام، یازده بایت است.

راهنمای استفاده از تبدیل باینری به متن

  1. جهت تبدیل را انتخاب کنید.
  2. متن یا کد باینری (گروه‌های ۸ بیتی با فاصله) را وارد کنید.
  3. خروجی را کپی کنید.

باینری چیست و چرا رایانه با آن کار می‌کند؟

ما با ده رقم، از صفر تا نه، می‌شماریم؛ دستگاه دهدهی. رایانه با دو رقم، صفر و یک؛ دستگاه دودویی یا باینری. دلیلش سخت‌افزار است. مدارهای الکترونیکی به راحتی دو حالت را از هم تشخیص می‌دهند؛ جریان هست یا نیست، ولتاژ بالاست یا پایین، نقطه‌ای روی دیسک مغناطیسی به این سو است یا آن سو. هر کدام از این دو حالت، یک بیت است. تشخیص ده حالت مختلف، خطای بسیار بیشتری داشت.

هر هشت بیت کنار هم یک بایت است و یک بایت می‌تواند ۲۵۶ مقدار مختلف داشته باشد، از ۰۰۰۰۰۰۰۰ تا ۱۱۱۱۱۱۱۱، یعنی از صفر تا ۲۵۵ در دهدهی. همهٔ داده‌های رایانه، از متن این صفحه تا عکس‌ها و فیلم‌ها و برنامه‌ها، در نهایت دنباله‌ای از بایت‌هاست. متن هم استثنا نیست؛ هر نویسه با یک یا چند بایت نوشته می‌شود و قاعدهٔ اینکه کدام نویسه کدام بایت‌ها را بگیرد، کدگذاری نام دارد.

تبدیل متن به باینری؛ از حرف تا صفر و یک

تبدیل متن به باینری در دو قدم انجام می‌شود. اول، متن با کدگذاری UTF-8 به بایت تبدیل می‌شود؛ هر نویسه به عدد یا عددهایی بین صفر تا ۲۵۵. دوم، هر بایت در مبنای دو نوشته می‌شود و اگر کمتر از هشت رقم داشت، از چپ با صفر پر می‌شود تا هر بایت دقیقا هشت رقم داشته باشد. مثلا حرف بزرگ انگلیسی H در UTF-8 عدد ۷۲ است و ۷۲ در مبنای دو، ۱۰۰۱۰۰۰ می‌شود که با یک صفر در ابتدا، ۰۱۰۰۱۰۰۰ است. حرف کوچک i عدد ۱۰۵ است، یعنی ۰۱۱۰۱۰۰۱. پس کلمهٔ Hi در باینری می‌شود این دو بایت.

سه نمایش یک بایت
هر سه، یک عدد را با مبنای متفاوت نشان می‌دهند.

برای حرف فارسی داستان کمی فرق دارد. حرف سین در UTF-8 دو بایت است؛ ۲۱۶ و ۱۷۹، که در هگزادسیمال D8 و B3 و در دودویی ۱۱۰۱۱۰۰۰ و ۱۰۱۱۰۰۱۱ نوشته می‌شوند. هر دو بایت با هم یک نویسه می‌سازند و جدا از هم معنایی ندارند. کلمهٔ سلام چهار حرف دارد و هشت بایت. فاصلهٔ بین Hi و سلام هم یک بایت است، عدد ۳۲. جمع این‌ها، یعنی دو بایت Hi، یک بایت فاصله و هشت بایت سلام، همان یازده بایت متن نمونه است.

نویسه دودویی هگزادسیمال دهدهی
A 01000001 41 ۶۵
a 01100001 61 ۹۷
رقم 0 00110000 30 ۴۸
فاصله 00100000 20 ۳۲
س 11011000 10110011 D8 B3 ۲۱۶ ۱۷۹
€ 11100010 10000010 10101100 E2 82 AC ۲۲۶ ۱۳۰ ۱۷۲
😀 11110000 10011111 10011000 10000000 F0 9F 98 80 ۲۴۰ ۱۵۹ ۱۵۲ ۱۲۸

اسکی، یونیکد و UTF-8

هر نویسه چند بایت؟
در کدگذاری UTF-8 که استاندارد وب است.

نخستین جدول کدگذاری رایج، اسکی بود که در دههٔ شصت میلادی ساخته شد و به ۱۲۸ نویسه، یعنی حروف بزرگ و کوچک انگلیسی، رقم‌ها، نمادها و چند نویسهٔ کنترلی، عددهای صفر تا ۱۲۷ داد. اسکی برای انگلیسی کافی بود، اما برای فارسی، عربی، چینی و صدها خط دیگر جایی نداشت. هر کشور و هر شرکتی جدول‌های خودش را ساخت و نتیجه، آشفتگی بود؛ متنی که در یک رایانه نوشته می‌شد، در رایانه‌ای دیگر به حروف نامفهوم تبدیل می‌شد. کاربران فارسی‌زبان این را با زیرنویس‌ها و ایمیل‌های قدیمی خوب تجربه کرده‌اند.

یونیکد برای حل این مشکل ساخته شد؛ جدولی واحد که به هر نویسهٔ هر خط دنیا، از جمله شکلک‌ها، شماره‌ای یکتا می‌دهد. UTF-8 روشی برای نوشتن این شماره‌ها با بایت است که امروز تقریبا همهٔ وب از آن استفاده می‌کند. هوشمندی UTF-8 در این است که ۱۲۸ نویسهٔ اسکی را دقیقا با همان یک بایت قدیمی می‌نویسد، پس متن انگلیسی قدیمی بدون تغییر، UTF-8 معتبر است. نویسه‌های دیگر دو، سه یا چهار بایت می‌گیرند. حروف فارسی و عربی دو بایت‌اند، بسیاری از نمادها مثل یورو سه بایت و بیشتر شکلک‌ها چهار بایت.

الگوی بایت‌های UTF-8

اگر به ستون دودویی جدول دقت کنید، الگویی می‌بینید. نویسه‌های یک‌بایتی همیشه با صفر شروع می‌شوند. در نویسه‌های چندبایتی، بایت اول با به تعداد بایت‌ها یک و بعد یک صفر شروع می‌شود؛ دو بایتی با ۱۱۰، سه‌بایتی با ۱۱۱۰ و چهاربایتی با ۱۱۱۱۰. بایت‌های بعدی همه با ۱۰ شروع می‌شوند. این الگو باعث می‌شود رایانه از هر نقطه‌ای در وسط متن بتواند تشخیص دهد کجا نویسهٔ تازه شروع می‌شود و هر نویسه چند بایت است.

همین الگو دلیل پیام خطایی است که ابزار گاهی در حالت باینری به متن می‌دهد. اگر رشتهٔ صفر و یکی که وارد می‌کنید، از این الگو پیروی نکند، مثلا بایتی با ۱۱۰ شروع شود اما بایت بعدی با ۱۰ شروع نشود، یا بایتی میانی تنها بیاید، دنباله UTF-8 معتبر نیست و ابزار به جای نمایش نویسه‌های خراب، پیام خطا می‌دهد. این معمولا یعنی یکی از بایت‌ها اشتباه تایپ یا کپی شده است.

برگرداندن باینری به متن

در حالت باینری به متن، ابزار هر چیزی جز صفر، یک و فاصله را از ورودی حذف می‌کند. اگر بایت‌ها با فاصله یا خط تازه جدا شده باشند، هر گروه یک بایت است. اگر کل رشته پیوسته باشد و بیش از هشت رقم داشته باشد، ابزار آن را از چپ هشت‌تا‌هشت‌تا جدا می‌کند. هر گروه نباید بیش از هشت رقم داشته باشد؛ گروه‌های کوتاه‌تر مشکلی ندارند و صفرهای جاافتادهٔ چپ را خودش در نظر می‌گیرد. در آخر، بایت‌ها با UTF-8 به متن تبدیل می‌شوند.

این حالت برای حل معماها و پیام‌های رمزی که با صفر و یک نوشته شده‌اند، یا برای بررسی اینکه یک رشتهٔ باینری در کتاب یا تمرین درسی چه متنی است، مفید است. اگر نتیجه حروف نامفهوم بود یا پیام خطا داد، احتمالا رشته متن نبوده، بلکه داده‌ای دیگر یا متنی با کدگذاری قدیمی بوده است. اگر رشته‌ای پیوسته دارید که طولش مضربی از هشت نیست، احتمالا یک رقم کم یا زیاد دارد.

هگزادسیمال؛ نمایش فشرده‌تر

نوشتن هر بایت با هشت رقم، طولانی و خسته‌کننده است. برنامه‌نویسان معمولا بایت‌ها را در مبنای شانزده، یعنی هگزادسیمال، می‌نویسند که هر بایت فقط دو نویسه دارد؛ رقم‌های صفر تا نه و حروف A تا F برای ده تا پانزده. هر رقم هگزادسیمال دقیقا چهار بیت است، پس تبدیل بین دودویی و هگزادسیمال بسیار ساده است. بایت ۱۱۰۱۱۰۰۰ به دو نیمهٔ ۱۱۰۱ و ۱۰۰۰ تقسیم می‌شود که در هگزادسیمال D و ۸ هستند؛ یعنی D8.

هگزادسیمال را در جاهای زیادی می‌بینید؛ کد رنگ‌ها در طراحی وب، نشانی‌های حافظه، هش فایل‌ها و همان رشته‌های درصددار لینک‌های فارسی، که در واقع بایت‌های UTF-8 به شکل هگزادسیمال‌اند. برای تبدیل عدد بین مبناهای مختلف، تبدیل مبنای اعداد را ببینید و برای دیدن بایت‌های هگزادسیمال حروف فارسی در لینک‌ها، رمزگذاری URL.

کاربردهای آموزشی

این ابزار برای کلاس‌های رایانه و فناوری اطلاعات مفید است. معلم می‌تواند با آن نشان دهد چطور متنی که دانش‌آموز تایپ می‌کند، در رایانه به صفر و یک تبدیل می‌شود. دانش‌آموزان می‌توانند نام خود را به باینری بنویسند و ببینند نام فارسی چند برابر بیت‌های نام انگلیسی دارد. تمرین دستی تبدیل یک حرف از دهدهی به دودویی، و بعد بررسی جواب با ابزار، مفهوم مبنای دو را عمیق‌تر از هر توضیحی جا می‌اندازد.

برای بازی و سرگرمی هم کاربرد دارد؛ نوشتن پیام‌های رمزی با صفر و یک برای دوستان، که با همین ابزار برگردانده می‌شوند. البته باینری رمز نیست و هر کسی که ابزاری مثل این داشته باشد، پیام را می‌خواند. اگر پیام واقعا باید پنهان بماند، رمزنگاری متن را ببینید.

تبدیل دستی دهدهی به دودویی

برای اینکه مبنای دو را واقعا بفهمید، یک بار تبدیل را دستی انجام دهید. عدد ۷۲، یعنی حرف H، را در نظر بگیرید. آن را مدام بر دو تقسیم کنید و باقی‌مانده‌ها را بنویسید؛ ۷۲ بر دو، ۳۶ با باقی‌ماندهٔ صفر. ۳۶ بر دو، ۱۸ با صفر. ۱۸ بر دو، ۹ با صفر. ۹ بر دو، ۴ با یک. ۴ بر دو، ۲ با صفر. ۲ بر دو، ۱ با صفر. ۱ بر دو، صفر با یک. حالا باقی‌مانده‌ها را از آخر به اول بخوانید؛ ۱۰۰۱۰۰۰. با یک صفر در چپ برای کامل کردن هشت رقم، ۰۱۰۰۱۰۰۰؛ همان چیزی که ابزار نشان می‌دهد.

برای برگرداندن، هر رقم را در توانی از دو ضرب کنید. از راست، رقم‌ها به ترتیب ارزش یک، دو، چهار، هشت، شانزده، سی‌ودو، شصت‌وچهار و صدوبیست‌وهشت دارند. در ۰۱۰۰۱۰۰۰، رقم‌های یک در جای شصت‌وچهار و هشت‌اند؛ جمعشان ۷۲. این روش ساده، پایهٔ همهٔ حساب‌های رایانه است.

چند واقعیت جالب

حروف بزرگ و کوچک انگلیسی در اسکی دقیقا سی‌ودو واحد فاصله دارند؛ A عدد ۶۵ است و a عدد ۹۷. در دودویی، این یعنی فقط یک بیت فرق دارند، بیت ششم از راست. برنامه‌نویسان قدیم با برعکس کردن همین یک بیت، حروف را بزرگ و کوچک می‌کردند. رقم‌ها هم ترتیب جالبی دارند؛ رقم صفر عدد ۴۸ است، یعنی ۰۰۱۱۰۰۰۰، و چهار بیت سمت راست هر رقم، خود مقدار آن رقم است.

در UTF-8، همهٔ حروف فارسی و عربی در بازه‌ای قرار دارند که بایت اولشان D8، D9، DA یا DB است. اگر در فایلی، بایت‌های هگزادسیمال را می‌بینید و بیشترشان با این چهار مقدار شروع می‌شوند، به احتمال زیاد متن فارسی است. همین نشانه به برنامه‌نویسان کمک می‌کند در داده‌های خام، متن فارسی را تشخیص دهند.

بیت، بایت و حجم فایل

وقتی می‌گوییم فایلی یک کیلوبایت است، یعنی حدود هزار بایت، یا هشت هزار بیت. متن هزارکلمه‌ای فارسی، با میانگین پنج حرف و یک فاصله برای هر کلمه، حدود شش هزار نویسه دارد؛ اما چون حروف فارسی دو بایت‌اند، حجمش حدود یازده کیلوبایت می‌شود، تقریبا دو برابر متن انگلیسی با همین تعداد نویسه. سرعت اینترنت معمولا با بیت در ثانیه بیان می‌شود و حجم فایل‌ها با بایت؛ برای همین، اینترنت هشت مگابیتی در بهترین حالت یک مگابایت در ثانیه دانلود می‌کند. برای تبدیل این واحدها، تبدیل واحد حجم داده را ببینید.

خطاهای رایج

خطای اول، انتظار یک بایت برای هر حرف فارسی است که در نتیجه شمارش بیت‌ها و بایت‌ها اشتباه می‌شود. خطای دوم، فرض اینکه باینری متن در همهٔ سیستم‌ها یکی است؛ متنی که با کدگذاری قدیمی ویندوز برای فارسی ذخیره شده، بایت‌های کاملا متفاوتی دارد و این ابزار فقط UTF-8 را می‌شناسد. خطای سوم، جا انداختن یک رقم در رشتهٔ پیوسته که همهٔ بایت‌های بعدی را جابه‌جا می‌کند؛ اگر رشته را با فاصله بین بایت‌ها بنویسید، این خطا محدود به یک بایت می‌ماند.

اشکال‌یابی کدگذاری با هگزادسیمال

برنامه‌نویسانی که با متن فارسی کار می‌کنند، گاهی با متنی روبه‌رو می‌شوند که ظاهرا درست است اما مقایسه یا جست‌وجویش کار نمی‌کند. نمایش هگزادسیمال این ابزار، تفاوت‌های نامرئی را آشکار می‌کند. ی فارسی در UTF-8 بایت‌های DB 8C دارد و ی عربی D9 8A؛ ک فارسی DA A9 و ک عربی D9 83. نیم‌فاصله سه بایت E2 80 8C است و فاصلهٔ معمولی یک بایت ۲۰. دو کلمه‌ای که یکسان به نظر می‌رسند ولی در جست‌وجو یکی شناخته نمی‌شوند، با این نمایش در یک نگاه فرقشان پیدا می‌شود.

همین روش برای پیدا کردن نویسه‌های نامرئی دیگر هم کار می‌کند؛ نشانهٔ ترتیب بایت در ابتدای برخی فایل‌ها با بایت‌های EF BB BF، فاصلهٔ نشکن با C2 A0 و نشانه‌های جهت متن که گاهی هنگام کپی از ویرایشگرهای راست‌به‌چپ همراه متن می‌آیند. اگر رشته‌ای بایت‌هایی بیش از انتظار دارد، یکی از این‌ها در آن پنهان است.

حریم خصوصی

همهٔ تبدیل‌ها در مرورگر شما انجام می‌شوند و متن به هیچ سروری فرستاده نمی‌شود. ابزار همزمان با تایپ کار می‌کند و نیازی به زدن دکمه نیست؛ هر تغییری در متن، هر سه نمایش را فورا به‌روز می‌کند. برای متن‌های طولانی، خروجی دودویی خیلی بلند می‌شود؛ هر نویسهٔ فارسی شانزده رقم صفر و یک دارد. اگر فقط می‌خواهید تعداد بایت‌های متن را بدانید، تعداد عددهای خروجی دهدهی را بشمارید؛ هر عدد یک بایت است. این روش برای متن‌های کوتاه ساده و دقیق است.

ابزارهای مرتبط

برای کدگذاری متن به شکل فشرده‌تری که در ایمیل و وب کاربرد دارد، تبدیل Base64 را ببینید و برای اثر انگشت یک متن، ساخت هش. همهٔ ابزارهای برنامه‌نویسی در ابزارهای برنامه‌نویسی آمده‌اند.

آخرین بازبینی محتوا: · تیم تحریریه ابزار جیبی

سوالات متداول

کلمهٔ Hi به باینری چه می‌شود؟
01001000 01101001.
باینری چیست؟
نوشتن عدد فقط با دو رقم صفر و یک. رایانه‌ها همه‌چیز را، از متن و عکس تا برنامه، به شکل دنباله‌ای از بیت‌های صفر و یک ذخیره می‌کنند و هر هشت بیت یک بایت است.
چرا هر حرف فارسی دو بایت است؟
در کدگذاری UTF-8، حروف انگلیسی که در جدول قدیمی اسکی بودند یک بایت جا می‌گیرند و حروف خط‌های دیگر، از جمله فارسی و عربی، دو بایت. شکلک‌ها و برخی نویسه‌های کمیاب سه یا چهار بایت دارند.
کد اسکی چیست؟
جدولی قدیمی که به ۱۲۸ نویسهٔ انگلیسی، رقم و نماد، عددی بین صفر تا ۱۲۷ می‌دهد؛ مثلا حرف A عدد ۶۵. UTF-8 این جدول را بدون تغییر در خود دارد.
چطور کد باینری را به متن برگردانم؟
حالت باینری به متن را انتخاب کنید و رشتهٔ صفر و یک را، با فاصله بین هر هشت بیت یا پیوسته، بچسبانید. ابزار آن را به بایت و بعد به متن UTF-8 تبدیل می‌کند.

این ابزار چقدر برایتان مفید بود؟

اولین نفری باشید که به این ابزار امتیاز می‌دهد.

↑ ↓ جابه‌جاییEnter باز کردنEsc بستن