Kikokotoo cha Kubadilisha Besi
Badilisha namba nzima kuwa binary, octal, desimali, na heksadesimali.
Jinsi ya kutumia kikokotoo hiki cha kubadilisha msingi
- Ingiza nambari kamili
Andika nambari kamili isiyo hasi katika sehemu ya Nambari kamili (k.m. 255 au 4096).
- Soma thamani ya binary
Matokeo ya thamani ya Binary yanaonyesha uwakilishi wa msingi wa 2.
- Angalia octal na hex
Pitia matokeo ya Octal na Hexadecimal kwa uwakilishi mfupi.
- Hakiki desimali
Toleo la Desimali linathibitisha thamani asili kwa ajili ya uhakiki.
Jinsi kikokotoo hiki cha kubadilisha msingi kinavyofanya kazi
Kikokotoo hiki cha kubadilisha msingi huchukua namba nzima katika mfumo wa decimal (msingi wa 10) na kuiwakilisha katika binary (msingi wa 2), octal (msingi wa 8), na hexadecimal (msingi wa 16) — mifumo minne ya namba inayotumiwa zaidi katika sayansi ya kompyuta. Kila mfumo wa namba wa nafasi hufanya kazi kwa njia ile ile: kila nafasi ya tarakimu inawakilisha nguvu inayofuata ya msingi, na thamani ya namba ni jumla ya kila tarakimu ikizidishwa na uzito wa nafasi yake. Kubadilisha kati ya misingi ni operesheni ya msingi katika programu za kiwango cha chini, usanifu wa mantiki ya kidijitali, uhandisi wa mtandao (anwani za MAC na IPv6), misimbo ya rangi katika CSS, vinyago vya ruhusa za faili katika Unix, na ukaguzi wa anwani ya kumbukumbu wakati wa kutatua hitilafu.
Mgawanyo wa kurudia: gawanya N kwa radiksi lengwa R, rekodi baki, rudia kwa kigawio hadi kifikie 0, kisha soma baki kwa mpangilio wa kinyume Badilisha namba ya desimali 255 kwenda binary, octal, na hexadecimal. Kwa binary (R = 2): 255 ÷ 2 = 127 baki 1, 127 ÷ 2 = 63 B 1, 63 ÷ 2 = 31 B 1, 31 ÷ 2 = 15 B 1, 15 ÷ 2 = 7 B 1, 7 ÷ 2 = 3 B 1, 3 ÷ 2 = 1 B 1, 1 ÷ 2 = 0 B 1. Kusoma mabaki kuanzia chini kwenda juu: 11111111. Kwa octal (R = 8): 255 ÷ 8 = 31 B 7, 31 ÷ 8 = 3 B 7, 3 ÷ 8 = 0 B 3 → 377. Kwa hexadecimal (R = 16): 255 ÷ 16 = 15 B 15 (F), 15 ÷ 16 = 0 B 15 (F) → FF.
Desimali 4096 → binary 1000000000000, octal 10000, hex 1000. Muhimu kwa kuelewa 4 KiB = 4096 baiti.
Desimali 15 → binary 1111, octal 17, hex F. Kila tarakimu ya hex inalingana na biti nne haswa; F = 1111.
- ✓ Ingizo ni namba nzima isiyo hasi (sifuri au namba chanya). Sehemu za desimali na namba hasi zinahitaji algoriti za ziada (kama vile 'two's complement' kwa binary yenye ishara) ambazo ziko nje ya uwezo wa zana hii.
- ✓ Tarakimu za hexadecimal zaidi ya 9 zinawakilishwa kwa kutumia herufi kubwa A–F, kufuata utaratibu katika lugha nyingi za programu, RFCs, na nyaraka za maunzi.
- ✓ Sifuri za mwanzo huondolewa kwenye matokeo. Kwa uwakilishi wa upana maalum (kama vile binary ya biti 8 au 32), jaza matokeo kwa mikono hadi upana unaohitajika.
- ✓ Kikokotoo hiki kinakubali namba nzima zisizo hasi pekee. Thamani zilizo juu ya 2^53 − 1 (Number.MAX_SAFE_INTEGER ya JavaScript) hazikubaliwi ili tarakimu zinazoonyeshwa zibaki sahihi.
- Kila tarakimu ya hexadecimal inalingana na biti nne za binary, na kila tarakimu ya octal inalingana na biti tatu. Uhusiano huu hufanya ubadilishaji wa kichwani kati ya hex, octal, na binary kuwa wa haraka mara tu unapokariri mifumo 16 ya nibble.
- Thamani za kawaida zinazofaa kukaririwa: 0xFF = 255, 0x100 = 256, 0xFFFF = 65535, 0xFFFFFFFF = 4,294,967,295 (namba nzima ya juu zaidi ya biti 32 isiyo na ishara).
- Ruhusa za faili za Unix hutumia mfumo wa oktali: 755 inamaanisha rwxr-xr-x (mmiliki kusoma/kuandika/kutekeleza, kikundi na wengine kusoma/kutekeleza). Kila tarakimu ya oktali inawakilisha biti tatu za ruhusa.
- Misimbo ya rangi ya CSS ya hex ni thamani tatu za baiti za heksadesimali zilizounganishwa zinazowakilisha chaneli za nyekundu, kijani, na bluu — k.m., #FF8800 ni 255 nyekundu, 136 kijani, 0 bluu.
- Nadharia ya mfumo wa nambari wa nafasi — Knuth, D. E., The Art of Computer Programming, Volume 2: Seminumerical Algorithms, Sehemu ya 4.1
- IEEE 754-2019 — Kiwango cha Hesabu za Floating-Point (muktadha wa uwakilishi wa nambari kamili)
- RFC 4291 — Usanifu wa Anwani za IP Toleo la 6 (uandishi wa heksadesimali kwa IPv6)
Kuelewa mifumo ya nambari katika kompyuta
Kila mfumo wa nambari wa nafasi hutumia msingi (radix) na kuupa kila tarakimu uzito kulingana na nafasi yake. Katika desimali (msingi wa 10), tarakimu ya kulia kabisa ni mamoja, inayofuata ni makumi, kisha mamia. Binary (msingi wa 2) hutumia 0 na 1 pekee, ikilingana moja kwa moja na hali za kuwaka/kuzima za transista. Octal (msingi wa 8) huweka biti tatu kwa kila tarakimu, na hexadecimal (msingi wa 16) huweka biti nne kwa kila tarakimu, ikitumia A–F kwa thamani za 10–15. Kubadilisha kati ya misingi hutumia mgawanyo wa kurudia: gawanya nambari kwa msingi lengwa, rekodi baki, rudia kwa kigawanyo hadi sifuri, kisha soma baki kwa mpangilio wa kinyume. Algoriti hii ndiyo msingi wa ubadilishaji wote wa misingi katika programu.
Matumizi ya vitendo ya ubadilishaji wa misingi kwa watengenezaji programu
Watengenezaji programu hutumia ubadilishaji wa misingi wanapokagua kumbukumbu (memory dumps), kurekebisha hitilafu za operesheni za biti (bitwise operations), kufasiri ruhusa za faili, na kufanya kazi na kodi za rangi. Ruhusa za faili za Unix (k.m. 755) ni za octal: kila tarakimu inawakilisha kusoma/kuandika/kutekeleza kwa mmiliki, kikundi, na wengine. Rangi za CSS hex kama #FF8800 ni baiti tatu zilizounganishwa katika hexadecimal. Anwani za IPv6 huandikwa kwa hex. Bitmasks na bendera (flags) mara nyingi huonyeshwa kwa hex kwa urahisi wa kusoma (0xFF kwa mask ya baiti, 0xFFFF kwa biti 16). Unaporekebisha hitilafu za kodi za kiwango cha chini au itifaki za mtandao, kubadilisha kati ya desimali, hex, na binary hufunua haraka mifumo ya biti iliyofichika.
Maswali yanayoulizwa mara kwa mara kuhusu kikokotoo cha kubadilisha msingi
Kwa nini mfumo wa binary, oktali, na heksadesimali hutumiwa katika sayansi ya kompyuta?
Binary inalingana moja kwa moja na hali za kuwaka/kuzima za transista, na kuifanya kuwa lugha asilia ya maunzi. Oktali na heksadesimali ni njia fupi ya binary — tarakimu moja ya hex inawakilisha biti nne na tarakimu moja ya oktali inawakilisha biti tatu — hivyo watayarishaji wa programu huzitumia kuelezea anwani, bitmasks, na misimbo ya rangi kwa ufupi zaidi kuliko mfuatano mrefu wa binary.
Je, ninabadilishaje kuelekea upande mwingine (k.m., hex kwenda desimali)?
Zidisha kila tarakimu kwa kipeuo cha nafasi yake cha msingi na ujumlishe matokeo. Kwa mfano, hex 1A3 = 1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 419 katika desimali.
Nini hutokea kwa nambari kubwa sana?
Kikokotoo kinakubali tu thamani hadi kikomo cha nambari kamili salama cha JavaScript: 2^53 − 1 (9,007,199,254,740,991). Nambari kubwa zaidi hukataliwa kwa sababu zinaweza kupoteza tarakimu zisizo na umuhimu mkubwa katika kivinjari.
Je, naweza kubadilisha namba hasi au sehemu?
Zana hii inashughulikia namba nzima zisizo hasi. Namba nzima hasi katika ukokotoaji kwa kawaida huwakilishwa kwa kutumia two's complement katika upana maalum wa biti, na thamani za sehemu hutumia usimbaji wa IEEE 754 floating-point — zote zinahitaji vigezo vya ziada ambavyo kikokotoo hiki hakikusanyi.
Kwa nini kiambishi awali cha 0x kinaonekana kwenye kodi lakini si kwenye matokeo?
Kiambishi awali cha 0x (na 0b kwa mfumo wa binary, 0o kwa mfumo wa octal) ni sintaksia maalum ya lugha inayouambia mkusanyaji au mkalimani msingi wa kutarajia. Kikokotoo hutoa mfuatano wa tarakimu ghafi bila kiambishi awali ili uweze kutumika katika muktadha wowote.