Yadda canzawar tushe ke aiki
Kowane tsarin lamba mai matsayi yana wakilta ƙima a matsayin jimillar lambobi da aka ninka ta iko na tushe. Canza tushe na nufin sake rubuta ƙima guda ɗaya akan jerin iko daban.
- Tabbatar da haruffan shigarwa. Kowane tushe yana karɓar saita lamba ta keɓe. Binary yana karɓar 0 da 1; octal yana karɓar 0-7; decimal yana karɓar 0-9; hex yana karɓar 0-9 da A-F. Harafi a wajen haruffan da aka zaɓa yana fitar da kuskure cikin layi kafin wani canzawa ya gudana.
- Bincike ƙima. Don ƙimami da suka dace a cikin Number na JavaScript (har zuwa 2^53-1) kayan aikin yana kiran
parseInt(text, base). A sama da iyakar haka yana dawo daBigIntdon canzawa ta kasance daidai don lamba gaba daya manya. - Sake-nuna a kowane tushe manufa. Ana canza ƙima da aka bincike zuwa kowane tushe na fitarwa ta
Number.prototype.toString(base)koBigInt.prototype.toString(base). Allunan huɗu na daidai (binary, octal, decimal, hex) da allon tushen al'ada suna sabuntawa tare. - Yi amfani da tsarawa. Mabuɗin prefix yana ƙara 0b, 0o, ko 0x zuwa gaban fitarwa ta binary, octal, da hex. Tara lambobi yana saka alamar ƙarƙashin kowane lamba huɗu na binary da kowane lamba biyu na hex. Mabuɗin halin hex yana zaɓar manyan ko ƙananan haruffa don A-F.
- Haɗin allo-zuwa-allo kai tsaye. Gyara duk wani allo yana kunna sake-canzawa mai jinkiri na 100 ms wanda ke sabunta sauran allunan. Allo da kake rubuta a ciki ana ɗaukar sa a matsayin tushen gaskiya a kowane lebe.
Me ya sa amfani da mai canza tushe
- Karanta kwatantawar ƙwaƙwalwa. Masu warware kwaro, masu rarraba, da masu kallonsu na core-dump suna nuna adiresoshi da ƙimaman rajista a cikin hex. Fassara waɗannan zuwa decimal yana sa su kwatantawa da ƙididdiga, girma, da filayen da aka rahoto a wani wuri a cikin alamar guda ɗaya.
- Aiki tare da lambobin launi. CSS, kayan aikin ƙira, da tsarin hoto suna rubuta launuka a cikin triplets na hex kamar #d2511a. Canza kowane nau'i zuwa decimal yana juyar da launi guda ɗaya zuwa siffa ta rgb(210, 81, 26) wanda mai zaɓin launi ko mai duba samun damar ka ke tsammani.
- Rarraba izinin fayil. Ƙimaman chmod na Unix ana rubuta su a cikin octal: 755 na nufin rwxr-xr-x da zarar ka fassara kowane lamba na octal zuwa bits uku na binary sa. Mai canzawa yana nuna wannan taswirar a matakai ɗaya don ka iya duba saita izini ba tare da kai ga shafi na man ba.
- Warware kwaro na bit flags. Yarukan cibiyar sadarwa, syscalls na kernel, da rajistan na'ura suna tattara tutoci da yawa na Boolean cikin lamba guda ɗaya. Karanta lamba a cikin binary yana nuna waɗane bits aka saita da wuri, wanda shine abin da kake buƙata yayin bin dalilin da flag bai ɗauki tasiri ba.
Ayyukan gari
Canzawar tushe yana bayyana a aikin mai haɓaka na yau da kullum, tsaro, da na'ura lokacin da lamba ta fi ƙididdiga kawai.
- Firmware da aka haɗa: karanta kwatantar hex daga binciken JTAG, nemo adireshin aikin, kuma rubuta umarni na lakabi ta amfani da filayen decimal wanda rubutun mai warware kwaro ɗinka ya karɓa.
- Tsaro na cibiyar sadarwa: bincike netmask 32-bit da aka buga a cikin decimal-da-tabo baya zuwa binary don ƙididdige tsawon prefix, sannan rubuta siffa ta CIDR don ƙa'idar ACL.
- Tambayoyin CTF da ƙalubalen crypto: canza tsakanin hex, decimal, da binary yayin kwatanta yankin makulli da aka tuce da rubutu na ɗan takara ƙarƙashin XOR.
Misali da aka yi aiki
Rubuta 255 cikin allon decimal. Allon hex yana sabuntawa zuwa FF (ko 0xFF tare da mabuɗin prefix a kan), allon binary zuwa 11111111 (an tara a matsayin 1111_1111), da allon octal zuwa 377. Canza radix na allo na al'ada zuwa 36 kuma ƙima guda ɗaya yana nuna a matsayin 73. Rubuta ƙima mafi girma kamar 123456789012345678901234567890 cikin allon decimal; allon hex yana amfani da hanyar BigInt kuma yana nuna 18EE90FF6C373E0EE4E3F0AD2.
FAQ
Menene tushe na lamba?
Tushe na lamba, ko radix, shine nawa lambobi daban-daban tsarin matsayi ke amfani da su kafin ya ɗauki zuwa matsayi na gaba. Decimal (tushe 10) yana amfani da 0-9; binary (tushe 2) yana amfani da 0 da 1 kawai; hexadecimal (tushe 16) yana amfani da 0-9 da A-F. Ƙimar lamba ba ta canjawa lokacin da ka canza tushe — yadda aka rubuta da tara lambobin sa kawai.
Me ya sa amfani da hexadecimal a shirye-shirye?
Lamba hex ɗaya tana taswirar daidai zuwa bits huɗu na binary, don haka lambobi biyu na hex suna rufe byte kuma lambobi takwas na hex suna rufe kalmar bit 32. Hakan yana sa hex mafi taƙaitaccen siffa mai karatu ga mutum don adireshin ƙwaƙwalwa, abubuwan rajistan, triplets launi, da makullan crypto. Karanta 0xFF sauri ne fiye da karanta 11111111, kuma tsarin bit yana nan idan ka buƙace shi.
Shin zan iya canza fiye da tushe 36?
Wannan kayan aiki ya tsaya a tushe 36 saboda haka shine babbar iyakar API ɗin JavaScript na asali na parseInt da toString, waɗanda ke karɓar 0-9 sai A-Z a matsayin haruffan lamba. Tushe 37-62 sun yiwu da haruffa na al'ada (Base58 da ake amfani da shi a adiresoshin Bitcoin misali ɗaya ne) amma ana bin su a matsayin kayan aiki daban saboda kowane tushe mafi girma yana buƙatar tsarin lamba na al'ada nasa.
Shin wannan yana sarrafa lambobi mara kyau da floats?
Ana nuna lambobi gaba daya mara kyau tare da alama ta minti a gaban kowace tushe, ɗabi'ar guda ɗaya da Number.prototype.toString yana aika da shi. Wakilcin biyu-mara-kyau a duk faɗin zaɓin bit-width (8, 16, 32, 64) kallon daban ne da muke shirin ƙara. Canzawar tushe ta lamba madaidaiciya kuma a wajen wurin samar don wannan sigar; kayan aikin yana sarrafa ƙimaman lamba gaba daya kawai.
Canzawar tushe aikin ƙarami ne wanda ke bayyana sau da sau a cikin firmware, tsaro, da aikin hoto. Yin shi a taba burauzar, tare da farkon farko na lissafi guda ɗaya da Node da V8 sun riga sun aika, yana kiyaye aiki sauri kuma bayanai a injinar ka.