هکس به تبدیل اعشاری -- 0x30، 0xFF و هر هکس به اعشاری
هر هکس را به شکل اعشاری فورا تبدیل کنید -- 0xFF = 255, 0xA = 10, 0x30 = 48. کنورتر رایگان هکس به شکل اعشاری را با تجزیه گام به گام امتحان کنید.
مبدل هکس به اعشاری -- نتایج فوری
از اين استفاده کنمبدل هکس به اعشاریبرای تبدیل هر مقدار هگزادسیمال به اعشاری بلافاصله. تبدیل های رایج:0xA = 10, 0x10=16, 0x64 = 100, 0xFF = 255، و0x30 = 48. فقط یک مقدار هکس بالا را وارد کنید و نتیجه اعشاری را با تجزیه گام به گام دریافت کنید -- بدون نیاز به ثبت نام.
درک سیستم عددی هگزادسیمال
هگزادسیمال (hex) یک سیستم عددی پایه 16 است که از 16 نماد متمایز استفاده می کند: اعداد 0 - 9 و حروف A - F (که در آن A = 10 ، B = 11 ، C = 12 ، D = 13 ، E = 14 ، F = 15). هگز به طور گسترده ای در محاسبات به عنوان یک راه مناسب برای انسان برای نشان دادن داده های باینری استفاده می شود ، زیرا هر 4 رقم باینری (بیت) دقیقاً با یک رقم هگز مطابقت دارد - که هگز را یک مخفف جمع برای باینری می کند.
هر موقعیت در یک عدد هکس نمایانگر توان 16 است:
| موقعیت | ۱۶۳ | ۱۶۲ | 161 | 160 |
|---|---|---|---|---|
| ارزش | ۴۰۹۶ | 256 | 16 | 1 |
تبدیل هکس به اعشاری:هر عدد شش گانه را با مقدار جای آن (قدرت ۱۶) ضرب کنید و نتایج را جمع کنید.
مثال:2F4A16= 2x4096 + F(15) x256 + 4x16 + A(10) x1 = 8,192 + 3,840 + 64 + 10 =۱۰،۱۰۶
شماره های هکس به طور معمول با0xدر برنامه نویسی (به عنوان مثال0x2F4A) ، یا به دنبال آنhدر زبان مونتاژ (به عنوان مثال،2F4Ah), برای تمایز آنها از اعداد اعشاری.
مثال سریع: 0x30 به اعشاری
یکی از متداول ترین مقادیر هکس0x30. برای تبدیل شدن0x30 به اعشاری: 3 رو با 16 ضرب کن و 0 رو اضافه کن48. پس0x30 = 48به صورت اعشاری
چرا 0x30 اینقدر زیاد میاد؟ چون در کدگذاری ASCII0x30 کاراکتر "0" است.(رقم صفر). ارقام "0" - "9" به 0x30 - 0x39 (48 - 57 اعشاری) می پیوندند ، به همین دلیل است که برنامه نویسان هنگام تجزیه متن یا کار با کد های کاراکتر ، اغلب با این مقدار روبرو می شوند.
مرحله به مرحله: 0x30 -> اعشاری
- اولین رقم هکس (از سمت راست، موقعیت ۱):0x 160 = 0 x 1 = 0
- دومین رقم هکس (موقعیت ۲):3x 161 = 3 x 16 = 48
- جمع: 48 + 0 =48
مقادیر شش گانه مشترک -- مرجع تبدیل سریع
این ها ارزش های هکس هستند که برنامه نویسان و توسعه دهندگان اغلب به آن نگاه می کنند:
| هیکس | اعشاری | کاربرد رایج |
|---|---|---|
0xA | 10 | اعشاری 10 -- ساده ترین مقدار حروف شش گانه (A=10) |
0x0C | 12 | ورودی فرم ASCII؛ بازگشت حامل 0x0D است (13) |
0x10 | 16 | یک هکس "ده"; پایه هگزادسیمال |
0x1F | 31 | حداکثر مقدار 5 بیتی؛ ماسک بیت برای 5 بیتی |
0x30 | 48 | ASCII '0' - کاراکتر صفر |
0x42 | 66 | ASCII "B"؛ همچنین 66 به صورت اعشاری (اغلب جستجو می شود) |
0x41 | 65 | ASCII "A" -- شروع حروف بزرگ |
0x61 | 97 | ASCII "a" -- شروع حروف کوچک |
0x64 | ۱۰۰ | اعشاری 100 -- برای بررسی درصد مفید است |
0x7F | 127 | حداکثر ۷ بیتی / حداکثر ASCII |
0x80 | 128 | حداقل مقدار با بیت 7 تنظیم شده؛ -128 امضا شده |
0xFF | ۲۵۵ | حداکثر مقدار بایت؛ کانال رنگی کامل (RGB) |
0x100 | 256 | ۲۸؛ اولین شماره سه رقمی هکس |
0x1F4 | ۵۰۰ | خطای HTTP 500؛ نیمی از 0x3E8 |
0x3E8 | هزار | هزار تا |
0xFFFF | ۶۵۵۳۵ | حداکثر عدد صحیح بدون علامت 16 بیتی |
0xFFFFFF | ۱۶۷۷۷۲۱۵ | حداکثر مقدار ۲۴ بیتی؛ حداکثر رنگ شش گانه CSS |
تبدیل اعشاری به هگزادسیمال
تبدیل از اعشاری به شش اعشاری از همان روش تقسیم تکرار شده به عنوان تبدیل باینری استفاده می کند، اما تقسیم به 16 به جای 2.
روش:به طور مکرر با 16 تقسیم کنید و باقیمانده را در هر مرحله ثبت کنید. باقیمانده های 10 - 15 به عنوان A - F نوشته می شوند. باقیمانده ها را از پایین به بالا بخوانید.
مثال: 1500 را به هکس تبدیل کنید
- 1500 ÷ 16 = 93 باقیمانده12 -> C
- 93 ÷ 16 = 5، باقیمانده13 -> D
- 5 ÷ 16 = 0 باقیمانده5 -> 5
از پايين به بالا بخون:5DC16
بررسی: 5x256 + D(13) x16 + C(12) x1 = 1,280 + 208 + 12 = 1,500
مثال: تبدیل 255 به هکس(بهترین مقدار یک بایت)
- 255 ÷ 16 = 15 باقیمانده 15 ->F
- 15 ÷ 16 = 0 باقیمانده 15 ->F
نتیجه:FF16-- به همین دلیل است که 255 به صورت0xFFدر کد و#FFFFFF(سفید) در رنگ های CSS از هر سه کانال در حداکثر (255, 255, 255) استفاده می کند.
يه نکته ي ذهني سريع:برای اعداد زیر 256 ، به بالاترین چند برابر 16 (اولین عدد شش گانه) و باقی مانده (دومین عدد شش گانه) تقسیم می شود. 180 = 11x16 + 4 = B416 200 = 12x16 + 8 = C816
کد های رنگ هکس: برنامه های کاربردی وب و طراحی
یکی از رایج ترین کاربردهای روزمره شش اعشاری، کد های رنگی CSS و وب است. رنگ ها به عنوان#RRGGBB، که در آن RR، GG و BB ارزش های هکس دو رقمی (00 - FF) برای کانال های قرمز، سبز و آبی به ترتیب هستند.
| رنگ شش گانه | R (دسمی) | G (دسمی) | B (تعداد اعشاری) | توضیحات رنگ |
|---|---|---|---|---|
| #000000 | 0 | 0 | 0 | سیاه (حداقل همه کانال ها) |
| #FFFFFF | ۲۵۵ | ۲۵۵ | ۲۵۵ | سفید (به حداکثر تمام کانال ها) |
| #FF0000 | ۲۵۵ | 0 | 0 | قرمز خالص |
| #00FF00 | 0 | ۲۵۵ | 0 | سبز خالص (سنگ) |
| #0000FF | 0 | 0 | ۲۵۵ | آبی خالص |
| #FF5733 | ۲۵۵ | 87 | 51 | قرمز نارنجی روشن |
| #4A90D9 | 74 | 144 | ۲۱۷ | آسمان آبی متوسط |
| #808080 | 128 | 128 | 128 | خاکستری متوسط (۵۰٪ از هر کدام) |
هر کانال (00 - FF) 256 سطح x 3 کانال = 16،777،216 رنگ ممکن (16.7 میلیون) را فراهم می کند.#RGBنماد (به عنوان مثال، #F5A) هر رقم را به دو رقم یکسان گسترش می دهد: #FF55AA - در CSS زمانی استفاده می شود که هر دو رقم هکس در یک جفت یکسان باشند.
CSS مدرن نیز پشتیبانی می کند#RRGGBBAA(8 رقم هکس) برای رنگ هایی با شفافیت (کانال آلفا) ، جایی که AA ناپایداری را از 00 (کاملاً شفاف) تا FF (کاملاً ناپایدار) تعریف می کند. مثال:#FF573380= قرمز نارنجی در 50٪ نوری (8016 = 12810 ~ 50٪).
هکس در برنامه نویسی و کامپیوتر
شش اعشاری در سراسر برنامه نویسی، مستندات سخت افزاری و علوم کامپیوتر ظاهر می شود:
آدرس حافظه:آدرس RAM و پردازنده در هکس بیان می شود. آدرس حافظه 64 بیتی ممکن است مانند0x7FFE0B4C3A20. از هکس استفاده می شود زیرا به طور فشرده ای نمایانگر باینری زیربنایی است، و 2 رقم هکس = دقیقاً 1 بایت - که عددی آدرس را بصری می کند.
کد ماشین و جداسازی:دستورالعمل های CPU به صورت هکس بایت کدگذاری شده اند. دستور x86MOV EAX, 0x42کامپایل به بایت های هکسB8 42 00 00 00. محققان امنیتی و برنامه نویسان سطح پایین برای درک یا مهندسی معکوس نرم افزار، Hex Dumps را می خوانند.
کدگذاری کاراکتر ASCII:ASCII کاراکترها را به اعداد 0 - 127 می پردازد. در هکس: "A" = 0x41 ، "a" = 0x61 ، فضا = 0x20 ، "0" = 0x30 . این الگوی سازگار است - حروف بزرگ از 0x41 شروع می شوند ، حروف کوچک از 0x61 (دقیقاً 0x20 = 32 تفاوت ، به همین دلیل XOR-ing یک حرف با 0x20 مورد خود را تغییر می دهد).
آدرس های IPv6:آدرس های ۱۲۸ بیتی IPv6 به صورت ۸ گروه از ۴ عدد هکس نوشته می شوند:2001:0DB8:AC10:FE01:0000:0000:0000:0001هر گروه 16 بیت را نشان می دهد (هر یک 4 هکس رقمی x 4 بیت). آدرس های IPv4 همچنین می توانند در هکس بیان شوند: 192.168.1.1 = 0xC0A80101.
کد خطا:کدهای توقف ویندوز ("صفحه آبی مرگ") هکس هستند: 0x0000007E، 0xC0000005. کدهای خطای یونیکس، کدهای وضعیت HTTP در بسته های شبکه و کدهای POST BIOS همگی از هکس استفاده می کنند. تشخیص الگوهای رایج هکس به رفع مشکلات سیستم کمک می کند.
باینری، اوکتال، اعشاری، هکس: مرجع کامل تبدیل
چهار سیستم عددی مورد استفاده در محاسبات و چگونگی ارتباط آنها:
| اعشاری | باینری | اکتال | هیکس |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 4 | 0100 | 4 | 4 |
| 8 | 1000 دلار | 10 | 8 |
| 10 | ۱۰۱۰ | 12 | A |
| 15 | ۱۱۱۱ | 17 | F |
| 16 | 0001 0000 | 20 | 10 |
| 32 | 0010 0000 | 40 | 20 |
| 64 | 0100 0000 | ۱۰۰ | 40 |
| 128 | 1000 0000 | 200 | 80 |
| ۲۵۵ | 1111 1111 | ۳۷۷ | FF |
| 256 | 0001 0000 0000 | ۴۰۰ | ۱۰۰ |
| ۱۰۲۴ | 0100 0000 0000 | 2000 دلار | ۴۰۰ |
| ۶۵۵۳۵ | 1111 1111 1111 1111 | 177777 | FFFF |
میانبر برای تبدیل سریع:
- باینری هکس:ارقام باینری را در مجموعه های 4 گروه بندی کنید (از راست) ، هر گروه را به یک عدد هکس تبدیل کنید. نیازی به تقسیم نیست. 1010 1100 11112 = A, C, F =ACF16
- باینری <-> اوکتال:اعداد باینری را در مجموعه های 3 گروه بندی کنید (از راست) ، هر گروه را تبدیل کنید. 001 010 0112 = 1، 2، 3 =۱۲۳۸
- هکس <-> اکتال:تبدیل از طریق باینری به عنوان یک واسطه -- هکس به باینری (4 بیت در هر رقمی هکس) ، سپس باینری به اکتالی (3 بیت در هر رقمی اکتالی)
محاسبات و نکات عملی جادوگری
چند تکنیک مفید برای کار با هکس در عمل:
اضافه کردن هکس:ستون به ستون را اضافه کنید، وقتی که مجموع به 16 برسد. مثال: 3A + 2F:
- ستون واحد: A(10) + F(15) = 25 اعشاری = 1916 -> 9 را بنویسید، 1 را بردارید
- ستون شانزدهم: 3 + 2 + 1 ((حمل) = 6
- نتیجه:۶۹۱۶= 105 دسیمل چک کنید: 58 + 47 = 105
چک کردن قابلیت تقسیم در هکس:یک عدد شش گانه قابل تقسیم بر 16 است اگر آخرین رقم 0 باشد (همچنین تقسیم بر 10 در اعشاری). اگر آخرین رقم شش گانه جفت باشد (0,2,4,6,8,A,C,E) قابل تقسیم بر 2 است.
هکس در URL ها و کدگذاری:URL ها کاراکترهای ویژه را با استفاده از کدگذاری درصد رمزگذاری می کنند: یک فضای خالی می شود%20(0x20 = 32 = فضا در ASCII) علامت @ =%40(0x40 = 64 = '@' در ASCII). دانستن کد هکس ASCII به رمزگشایی URL های رمزگذاری شده کمک می کند.
خروجی تابع های هش:MD5 خروجی 128 بیتی (32 کاراکتر شش گانه) تولید می کند. SHA-256 خروجی 256 بیتی (64 کاراکتر شش گانه) تولید می کند. مثال هش SHA-256:a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3-- همیشه 64 کاراکتر هکس بدون توجه به اندازه ورودی. این چیزی است که شما می بینید زمانی که فایل های دانلود شده را با چک سوم مقایسه می کنید.
سوالات متداول
چطور ميشه هگزادسمال رو به دسامال تبديل کرد؟
هر عدد شش گانه را با 16 به توان موقعیت آن ضرب کنید (از 0 در سمت راست شروع می شود) و نتایج را جمع کنید. مثال: 1A316 = 1x256 + A(10) x16 + 3x1 = 256 + 160 + 3 = 419 . ماشین حساب ما این کار را بلافاصله برای هر مقدار شش گانه ای که وارد می کنید انجام می دهد.
چطور ميتونيم اعشاري رو به هگزادسيمال تبديل کنيم؟
به طور مکرر با 16 تقسیم کنید و باقیمانده را در هر مرحله ثبت کنید. باقیمانده های 10 - 15 به صورت A - F نشان داده می شوند. باقیمانده ها را از آخر به اول بخوانید. مثال: 255 ÷ 16 = 15 باقیمانده 15 (((F) ؛ 15 ÷ 16 = 0 باقیمانده 15 (((F) -> 255 اعشاری = FF هکس.
از اعداد هگزادسیمال برای چه کاری استفاده می شود؟
هکس در سراسر محاسبات مورد استفاده قرار می گیرد: آدرس های حافظه (0x7FF0E2A0) ، کد های رنگی وب (#FF5733) ، کد ماشین و داده های باینری ، آدرس های شبکه IPv6 ، خروجی های هش رمزنگاری (MD5 ، SHA-256) ، کدگذاری کاراکتر ASCII ، مجوزهای فایل یونیکس ، کد های خطای BIOS و هر زمینه ای که نمایش باینری فشرده مورد نیاز است.
چرا هکس از حرف های A تا F استفاده می کنه؟
هگزادسیمال پایه 16 است و نیاز به 16 نماد متمایز دارد. ارقام 0 تا 9 10 مقدار اول را پوشش می دهند. حروف A تا F به ترتیب 10 تا 15 را نشان می دهند. این کنوانسیون در محاسبات در دهه 1960 استاندارد شد. انتخاب حروف بزرگ و حروف کوچک (A-F vs a-f) با سیستم متفاوت است؛ هر دو معتبر هستند و نشان دهنده همان ارزش ها هستند.
0xA در اعشاری چه مقدار است؟
0xA به صورت اعشاری10عدد شش گانه A نشان دهنده مقدار 10 است. این ساده ترین تبدیل شش گانه به اعشاری است که شامل یک حرف است - A اولین حرف استفاده شده در هجده گانه است که نشان دهنده مقدار اعشاری بلافاصله بعد از 9 است.
0x10 به صورت اعشاری چه مقدار است؟
0x10 به صورت اعشاری16. برای تبدیل: 1x16 + 0x1 = 16. این منطقی است چون هگزادسیمال پایه 16 است، بنابراین "10" در هگز برابر با ارزش پایه است -- درست مثل "10" در اعشاری برابر با 10 است، و "10" در باینری برابر با 2 است.
0x64 در اعشار چه مقدار است؟
0x64 به صورت اعشاری۱۰۰. برای تبدیل: 6x16 + 4x1 = 96 + 4 = 100. این مقدار اغلب در برنامه نویسی برای محاسبات درصد، شمارنده های حلقه ای و به عنوان یک عدد اعشاری گرد که یک نمایش هکس به یاد ماندنی دارد، ظاهر می شود.
0x30 در اعشاریات چقدر است؟
0x30 به صورت اعشاری48برای تبدیل: ۳x۱۶ + ۰x۱ = ۴۸ + ۰ = ۴۸. مقدار ۰x۳۰ به ویژه در کدگذاری ASCII قابل توجه است - این کاراکتر "۰" (رقم صفر) را نشان می دهد. محدوده کامل کاراکترهای رقمی ASCII "۰" - "۹" شامل ۰x۳۰ - ۰x۳۹ (۴۸ - ۵۷ اعشاری) است.
0xFF در اعشاری چه مقدار است؟
0xFF = Fx16 + Fx1 = 15x16 + 15 = 240 + 15 = 255. این حداکثر مقدار یک بایت 8 بیتی (بدون امضا) است. این مقدار اغلب در برنامه نویسی برای ماسک های بیت، حداکثر ارزش کانال رنگی (RGB از 0x00 - 0xFF در هر کانال استفاده می کند) و هر جایی که یک مقدار حداکثر 8 بیتی مورد نیاز است، ظاهر می شود.
چطوری می تونم کد های رنگی رو بخونم؟
یک کد رنگ شش گانه مانند #4A90D9 به سه جفت تقسیم می شود: 4A (قرمز) ، 90 (سبز) ، D9 (آبی). هر یک را به اعشاری تبدیل کنید: 4A = 4x16 + 10 = 74; 90 = 9x16 + 0 = 144; D9 = 13x16 + 9 = 217. بنابراین #4A90D9 = rgb ((74, 144, 217) - یک آسمان آبی متوسط. هرچه مقدار بالاتر (نزدیک تر به FF / 255) باشد ، بیشتر از آن رنگ جزء.
تفاوت بین پیشوند 0x و پیشوند # در هکس چیست؟
هر دو عدد شش اعشاری را نشان می دهند ، اما در زمینه های مختلف. 0x (به عنوان مثال ، 0xFF ، 0x1A3) پیشوند استاندارد در زبان های برنامه نویسی (C ، C ++ ، جاوا ، پایتون ، جاوا اسکریپت و غیره) است. # به طور خاص برای رنگ های وب / CSS (#FF5733) استفاده می شود. برخی از زمینه ها از پسوند h (زبان اسمبلی) ، پیشوند $ (سیستم های قدیمی تر) یا بدون پیشوند (هنگامی که زمینه آن را روشن می کند) استفاده می کنند.
چطوری میتونی به سرعت بین باینری و هکس تبدیل کنی؟
تعداد باینری را به مجموعه ای از 4 بیت از راست به چپ گروه بندی کنید، سپس هر گروه را به یک عدد شش عددی تبدیل کنید. از آنجا که 4 بیت = دقیقاً یک عدد شش عددی است، نیازی به محاسبه نیست. مثال: باینری 1011 0100 11002 -> گروه به عنوان 101111111111111111 -> B1111411C -> B4C16. این به طور معکوس نیز کار می کند: هر عدد شش عددی به دقیقاً 4 رقم باینری گسترش می یابد.