science >> Wetenschap >  >> anders

Negatieve getallen converteren naar Binair

Omdat het binaire getalsysteem slechts twee symbolen - 1 en 0 - heeft, die negatieve getallen voorstellen, is niet zo eenvoudig als het toevoegen van een minteken ervoor. Er zijn echter eenvoudige manieren om een negatief getal in binair getal weer te geven. Dit artikel biedt drie oplossingen voor dat probleem.
Gebruik een tekenbit

    Selecteer het aantal bits dat u wilt gebruiken om uw binaire getallen weer te geven. Een nummer van acht bits wordt al lang standaard gebruikt. Het was de oorspronkelijke grootte voor een geheel getal in computerprogrammering. Natuurlijk zijn er ook lange gehele getallen (16 bits). Opmerking: als u een geheel getal van acht bits gebruikt, worden slechts zeven bits gebruikt om uw werkelijke nummer weer te geven.

    Selecteer het meest linkse bit om als tekenbit te dienen. Als het bit 0 is, is het nummer positief. Als het 1 is, is het getal negatief.

    Schrijf uw negatieve getal met alle acht bits. Daarom wordt het getal -5 geschreven als 10000101.

    Gebruik 1s Compliment

      Schrijf het getal in binair getal op dezelfde manier als wanneer het positief zou zijn. Schrijf opnieuw 5 als 00000101, ervan uitgaande dat we acht-bits gehele getallen gebruiken.

      De cijfers omkeren - d.w.z. 1s gaat naar 0s en 0s gaat naar 1s. Daarom wordt 5 11111010.

      Gebruik het meest linkse bit als tekenbit. Dus net als bij het gebruik van een tekenbit, zullen positieve getallen allemaal een 0-voorloopbit hebben (wanneer geschreven in een 8-bits formaat), terwijl alle negatieve getallen een voorloop 1 bevatten. Om het nummer te gebruiken, gebruikt u de tekenbitinformatie en draait u de cijfers terug voor numerieke waarde.

      Gebruik 2s Compliment

        Schrijf het getal op alsof u positief zou zijn, met alle acht bits. Dus 5 is 00000101.

        Keer de bits om en wissel de 1'en en 0'en zoals u deed met 1s-compliment. Dus nogmaals, 5 wordt 11111010.

        Voeg 1 toe aan uw nummer. Dus 5 wordt 11111010 + 00000001 \u003d 11111011.

        Controleer uw antwoord. Het getal 11111011 zou zijn, teruggezet naar basis 10: -128 + 64 + 32 + 16 + 8 + 0 + 2 + 1 \u003d -5.