Kaip konvertuoti neigiamus skaičius į dvejetainius

Beveik tikrai girdėjote apie neigiamus skaičius. Jei net šiek tiek susidūrėte su kompiuterių mokslo ir programavimo pasauliu, dvejetainių skaičių sąvoka nėra visiškai svetima. Bet nebent asmeniškai tyrinėjote programavimo pasaulį, tikriausiai niekada nedirbote iš esmės su dvejetainiais skaičiais.

Kadangi kompiuteriai negali savarankiškai „galvoti“ ar „apsispręsti“, bet gali nesunkiai tiksliai vykdyti nurodytas instrukcijas, matematikai jau seniai atėjo taip, kad kompiuteriai (arba pakankamai kantrūs žmonės) galėtų sudėti, atimti ir atlikti kitas matematines operacijas, naudodami tik 0 ir 1.

Bet ar yra būdas sujungti šias dvi idėjas ir gauti neigiamus skaičius? Ar taip paprasta, kaip liepti mašinai priklijuoti mažą horizontalią juostą prieš esamą skaičių a la rašiklį ir popierių, ar „bitų ir baitų“ faktorius viską labiau įtraukia?

Kas yra dvejetainiai skaičiai?

Kompiuteriai turi milžinišką duomenų apdorojimo galią, ir net senas klunkeris gali atlikti skaičiavimus tokiu greičiu, kuris atrodytų nesuprantamas net aritmetiškai gabiausiam žmogui. Bet tai nėra smegenys, ir vienintelis būdas priversti jas tvarkyti sudėtingą informaciją yra viską perkelti į vieną iš dviejų būsenų, pvz., ĮJUNGTA arba IŠJUNGTA.

„Kompiuteriuose“ vienas 0 arba 1 vadinamas a šiek tiek. Tarp jų yra: krapštytis (4 bitai), gerai žinomas baitas (8), žodis (1) ir ilgas žodis (32).

Dešimtainiai skaičiai, kuriuos paprastai matote, pvz., 492 ir 35, yra „bazė-10“, nes juose yra 10 laipsniškų simbolių (skaitmenys nuo 0 iki 9), kurie „apsiversti“ į kitą vietą kairėn - kitą „10 galybę“. Dvejetainiai skaičiai apima tik du simbolius (skaitmenis 0 ir 1) ir yra "bazė-2". Kiekvienas kairysis judesys nuo skaičiaus pabaigos yra didėjanti dviejų galia: pabaigos skaitmenys reiškia 1, kiti 2, tada 4, 8, 16 ir taip toliau.

  • Dešimtainis skaičius yra bet koks skaičius bazinėje 10 sistemoje, nebūtinai skaičius, kuriame yra dešimtainis taškas.

Dvejetainių skaičių pavyzdžiai

Dvejetainis „nybble“ 0101 turi 1 vietą 1 vietoje ir 4 vietą, o 0 - 2 ir 8 vietoje. Taigi dešimtainis ekvivalentas yra 1 + 4 = 5.

Panašiai baitas 1001 1100 yra lygus 128 + 16 + 8 + 4 (28 + 25 + 24 + 23) = 156.

papildyti dvejetainio skaičiaus skaičius yra tik skaičius, kurio skaitmenys yra „perjungti“. Pavyzdžiui, 1001 1100 = 0110 0011 papildinys.

Neigiamų skaičių konvertavimas į dvejetainius

Tai, kaip neigiamą dešimtainį skaičių paversti dvejetainiu skaičiumi, greičiausiai skiriasi nuo kitų skaitinių konversijų atlikote todėl, kad jūsų protas, nepaisant viso jo tingumo, daugeliu atžvilgių yra daug lankstesnis nei bet kuris kitas CPU. Tačiau tai yra nesudėtingas procesas.

Konversija atliekama naudojant a dviejų papildymas dvejetainis, kuris reikalauja, kad programuotojas nurodytų kompiuteriui bet kokį dvejetainį skaičių, prasidedantį nuo 1, interpretuoti kaip neigiamą. Tada programa sukonstruoja atitinkamą teigiamą skaičių dvejetainiu skaičiumi, paima jo papildą ir prideda vieną.

Pavyzdžiui, atsižvelgiant į skaičių −47, kompiuteris sukurs dvejetainį skaičių +47:

0001 1111

Tai papildo:

1110 0000

Prie to pridėjus, gaunama:

1110 0001

Atkreipkite dėmesį, kad kompiuteris „pasirašė“ šiuos skaičius, kad pirmaujanti 1 būtų neigiama ir gautus rezultatus apdorotų kitaip, nei paprasčiausiai susumavus simbolio 1 užimamas 2 galias.

  • Dalintis
instagram viewer