4.2.5 Lukujärjestelmien väliset muunnokset

Siirtyminen binääriluvusta vastaavaan heksalukuun voidaan siis tehdä ryhmittelemällä bittijono oikealta alkaen neljän bitin ryhmiin, jotka sitten tulkitaan heksasymboleiksi. Vastaavasti voitiin binääriluku muuttaa oktaaliluvuksi kolmen bitin ryhmiä käyttämällä.

Käänteinen muunnos saadaan kirjoittamalla heksalukua vastaavat 4 bitin ryhmät tai oktaalilukua vastaavat 3 bitin ryhmät. Myös oktaali-heksa- ja heksa-oktaalimuunnokset kannattaa käsin muunnettaessa tehdä tätä kautta:

1038 = 001 000 0112 = 0 0100 00112 = 0000 0100 00112
= 04316

Lukujärjestelmästä 10-järjestelmään siirtyminen tehtiin määritelmän mukaan summaamalla kantaluvun vastaavien potenssien lukumäärät. 10-järjestelmästä 2-järjestelmään siirryttäessä puolestaan jaetaan lukua kahdella ja kerätään jakojäännökset (1 tai 0) käänteisessä järjestyksessä:

Seuraavassa taulukossa on esitetty 2-, 8-, 16- ja 10-järjestelmien välinen riippuvuus:

B

O

H

D


B

O

H

D

0000

0

0

0


1000

10

8

8

0001

1

1

1


1001

11

9

9

0010

2

2

2


1010

12

A

10

0011

3

3

3


1011

13

B

11

0100

4

4

4


1100

14

C

12

0101

5

5

5


1101

15

D

13

0110

6

6

6


1110

16

E

14

0111

7

7

7


1111

17

F

15

Siis esimerkiksi 1011B = 13Q = 0BH = 11D.

Edellisestä esimerkistä huomaamme, että myös lukujärjestelmää vastaavan kirjaimen kirjoittaminen saattaa aiheuttaa sekaannusta, mikäli ei olla varmoja siitä, onko kirjain kirjoitettu luvun perään vai ei. Esimerkiksi edellä saatettaisiin tulkita, että 1011B on viisinumeroinen heksaluku ja 11D on 3-numeroinen heksaluku. Yleensä tämä sekaannus vältetään siten, että heksaluvun perässä pitää aina olla H.

C++-ohjelmointikielessä oktaaliluvut alkavat aina nollalla (siis esimerkiksi 017, 0251), kun taas heksaluvut tunnistetaan 0x-merkinnästä (esimerkiksi: 0x25, 0x6A7).