§

Options

§

Ikkilik (asos 2)

§

Sakkizlik (asos 8)

§

O'nlik (asos 10)

§

O'n oltilik (asos 16)

§

Maxsus asos

Toshkentdagi TATU (Axborot Texnologiyalari Universiteti) kompyuter arxitekturasi kurslarida IEEE 754 uzun aniqlikdagi sonlar ikkilik va hex formatida o'rganiladi — talabalar bitta 64-bitli naqshni belgi, ko'rsatkich va mantissa maydonlariga ajratishni mashq qiladi. MTQ (Markaziy Telekommunikatsiya Qo'mitasi) mobil aloqa protokollari tahlilida hex-kodli signal identifikatorlari qo'llaniladi; injener-texniklar har bir kadr sarlavhasidagi asos qiymatlarini o'nlikka aylantirishi lozim. IIIM (Innovatsion Ilmiy-Tadqiqot Markazi) muhandislari JTAG zondidan olingan embedded firmware hex-demplarini o'nlik ofsetlarga o'tkazib, funksiya manzillarini aniqlaydi va kesish nuqtalari qo'yadi. Ushbu konvertor mexanik hisoblashni bir zumda bajaradi — muhandis esa talqin va taxlilga vaqt ajratadi.

Asos konvertatsiyasi qanday ishlaydi

Har bir pozitsiyaviy sanoq sistemasi qiymatni asosning darajalari bilan ko'paytirilgan raqamlar yig'indisi sifatida ifodalaydi. Asosni almashtirish degani o'sha qiymatni boshqa daraja qatori asosida qayta yozish demakdir.

  1. Kirish alifbosini tekshirish. Har bir asos o'ziga xos raqamlar to'plamini qabul qiladi. Ikkilik 0 va 1 ni; sakkizlik 0-7 ni; o'nlik 0-9 ni; hex 0-9 va A-F ni qabul qiladi. Tanlangan alifbodan tashqari belgi topilsa, hech qanday konvertatsiya bajarilmasdan oldin ichki xato ko'rsatiladi.
  2. Qiymatni tahlil qilish. JavaScript Number doirasiga sig'adigan qiymatlar (2^53-1 gacha) uchun vosita parseInt(text, base) ni chaqiradi. Undan katta qiymatlar uchun BigInt ga o'tadi, shuning uchun o'zboshimcha katta butun sonlar uchun konvertatsiya aniq bo'lib qoladi.
  3. Har bir maqsad asosida qayta ko'rsatish. Tahlil qilingan qiymat Number.prototype.toString(base) yoki BigInt.prototype.toString(base) orqali har bir chiqish asosiga aylantiriladi. To'rtta standart panel (ikkilik, sakkizlik, o'nlik, hex) va maxsus asos paneli bir vaqtda yangilanadi.
  4. Formatlashni qo'llash. Prefiks belgisi ikkilik, sakkizlik va hex chiqishiga 0b, 0o yoki 0x qo'shadi. Raqam guruhlash har to'rtta ikkilik raqamdan va har ikkita hex raqamdan keyin pastki chiziq qo'yadi. Hex harf belgisi A-F uchun katta yoki kichik harfni tanlaydi.
  5. Jonli panellararo sinxronlash. Istalgan panelni tahrirlash 100 ms kechikish bilan boshqa panellarni yangilaydigan qayta konvertatsiyani ishga tushiradi. Yozayotgan panel har bir tugma bosishida haqiqat manbai sifatida qabul qilinadi.

Nima uchun asos konvertoridan foydalanish kerak

  • Xotira demplarini o'qish. Disk raskadrovkachilar, disassemblerlar va core-dump ko'ruvchilar manzillar va registr qiymatlarini hex formatida ko'rsatadi. Ularni o'nlikka o'girish xuddi shu iz bo'ylab boshqa joylarda ko'rsatilgan hisoblar, o'lchamlar va ofsetlar bilan taqqoslash imkonini beradi.
  • Rang kodlari bilan ishlash. CSS, dizayn vositalari va rasm formatlari ranglarni #d2511a kabi hex uchliklarida yozadi. Har bir juftni o'nlikka aylantirish rang tanlagich yoki kirish tekshirgich kutgan rgb(210, 81, 26) ko'rinishiga olib keladi.
  • Fayl ruxsatlarini dekodlash. Unix chmod qiymatlari sakkizlikda yoziladi: 755 degani har bir sakkizlik raqamni uchta ikkilik bitga aylantirsangiz rwxr-xr-x chiqadi. Konvertor bu xaritani bir bosqichda ko'rsatadi, shuning uchun man sahifasiga murojaat qilmasdan ruxsat to'plamini tekshirish mumkin.
  • Bit bayroqlarini disk raskadrovka qilish. Tarmoq protokollari, yadro tizimli chaqiruvlari va apparat registrlari ko'p mantiqiy bayroqlarni bitta butun songa joylaydi. Butun sonni ikkilikda o'qish qaysi bitlar o'rnatilganligini bir nazar bilan ko'rsatadi — bu bayroq nima uchun kuchga kirmayotganini aniqlashda kerak bo'lgan narsa.

Keng tarqalgan qo'llanishlar

Asos konvertatsiyasi dasturchi, xavfsizlik va apparat ishlari kundalik hayotida raqam oddiy hisobdan ko'proq narsa bo'lganda uchraydi.

  • Embedded firmware: JTAG zondidan olingan hex dempini o'qing, funksiya manzilini toping va disk raskadrovka skriptingiz qabul qiladigan o'nlik ofset yordamida kesish nuqtasi buyrug'ini yozing.
  • Tarmoq xavfsizligi: nuqtali-o'nlik formatdagi 32-bitli tarmoq niqobini ikkilikka aylantiring, prefiks uzunligini sanang, so'ngra ACL qoidasi uchun CIDR ko'rinishini yozing.
  • CTF topishmoqlari va kriptografiya musobaqalari: sizib chiqqan kalit parchasi nomzod ochiq matn bilan XOR ostida taqqoslanayotganda hex, o'nlik va ikkilik o'rtasida almashinib turing.

Ishlab chiqilgan misol

O'nlik panelga 255 kiriting. Hex panel FF ga (yoki prefiks bilan 0xFF), ikkilik panel 11111111 ga (guruhlangan holda 1111_1111), sakkizlik panel esa 377 ga yangilanadi. Maxsus panel radikisini 36 ga o'zgartiring — o'sha qiymat 73 sifatida ko'rsatiladi. O'nlik panelga 123456789012345678901234567890 kabi ancha katta qiymat kiriting; hex panel BigInt yo'lidan foydalanib 18EE90FF6C373E0EE4E3F0AD2 ni ko'rsatadi.

FAQ

Raqam asosi nima?

Raqam asosi, yoki radiks, pozitsiyaviy sistemaning keyingi razryadga o'tishdan oldin ishlatiladigan alohida raqamlar sonidir. O'nlik (asos 10) 0-9 dan foydalanadi; ikkilik (asos 2) faqat 0 va 1 dan; o'n oltilik (asos 16) 0-9 va A-F dan foydalanadi. Asosni almashtirganingizda raqamning qiymati o'zgarmaydi — faqat uning raqamlari yozilish va guruhlanish tarzi o'zgaradi.

Dasturlashda nima uchun o'n oltilik ishlatiladi?

Bitta hex raqam aynan to'rtta ikkilik bitga mos keladi, shuning uchun ikkita hex raqam bir baytni va sakkizta hex raqam 32-bitli so'zni qoplaydi. Bu hex ni xotira manzillari, registr tarkibi, rang uchliklarini va kriptografik kalitlar uchun eng ixcham odam o'qiy oladigan ko'rinishga aylantiradi. 0xFF ni o'qish 11111111 ni o'qishdan tezroq, va kerak bo'lsa bit naqshi ham shu yerda.

Asos 36 dan kattasiga aylantirish mumkinmi?

Bu vosita asos 36 da to'xtaydi, chunki bu mahalliy JavaScript parseInt va toString API larining yuqori chegarasidir — ular raqam alifbosi sifatida 0-9 dan keyin A-Z ni qabul qiladi. 37-62 asoslar maxsus alifbo bilan mumkin (Bitcoin manzillarida ishlatiladigan Base58 bunga misol), ammo ular har bir yuqori asos o'ziga xos kanonik raqam tartibini talab qilganligi sababli alohida vosita sifatida ko'rib chiqiladi.

Bu manfiy sonlar va kasrlarni qayta ishlaydi?

Manfiy butun sonlar barcha asoslarda bosh minus belgisi bilan ko'rsatiladi — bu Number.prototype.toString ning o'zi qo'llaniladigan xulq-atvoridir. Tanlangan bit kengligida (8, 16, 32, 64) ikki to'ldiruvchisi ko'rinishi alohida ko'rinishdir, biz uni qo'shishni rejalashtirmoqdamiz. Kasr asosi konvertatsiyasi ham ushbu versiya doirasidan tashqarida — vosita faqat butun sonlarni qayta ishlaydi.

Asos konvertatsiyasi firmware, xavfsizlik va grafika ishlarida qayta-qayta uchraydigan kichik bir vazifadir. Buni brauzer tabida, Node va V8 allaqachon yuboradigan arifmetik primitivlar yordamida bajarish ishni tez va ma'lumotlarni mashiningizda saqlaydi.