在我们日常的十进制系统中,基数或radix http://en.wikipedia.org/wiki/Radix is 10
。
一个数字系统基数告诉我们正在使用多少个不同的数字。
在十进制系统中,我们使用数字0
通过9
.
一个数字的意义是radix ^ i
, where i
是从右开始计数的数字位置,从零开始。
Decimal number 6789
细分:
6 7 8 9 radix ^ i
│ │ │ │ ──────────────
│ │ │ └── ones 10 ^ 0 = 1
│ │ └───── tens 10 ^ 1 = 10
│ └──────── hundreds 10 ^ 2 = 100
└─────────── thousands 10 ^ 3 = 1000
ones tens hundreds thousands
───────────────────────────────────────────────
(9 * 1) + (8 * 10) + (7 * 100) + (6 * 1000)
= 9 + 80 + 700 + 6000
= 6789
这个方案将帮助我们理解任何十进制数的数字系统。
十六进制系统的基数是16
,所以我们需要使用额外的数字A...F
表示10...15
。
让我们分解一下十六进制数CDEFh
以类似的方式:
C D E F radix ^ i
│ │ │ │ ──────────────
│ │ │ └── ones 16 ^ 0 = 1
│ │ └───── sixteens 16 ^ 1 = 16
│ └──────── 256:s 16 ^ 2 = 256
└─────────── 4096:s 16 ^ 3 = 4096
ones sixteens 256:s 4096:s
───────────────────────────────────────────────
(Fh * 1) + (Eh * 16) + (Dh * 256) + (Ch * 4096)
= (15 * 1) + (14 * 16) + (13 * 256) + (12 * 4096)
= 15 + 224 + 3328 + 49152
= 52719
我们刚刚转换了数字CDEFh
到十进制(即切换基数16
到基地10
).
In binary系统,基数为2
,所以只有数字0
and 1
被使用。
这里是二进制数的转换1010b
转为十进制:
1 0 1 0 radix ^ i
│ │ │ │ ──────────────
│ │ │ └── ones 2 ^ 0 = 1
│ │ └───── twos 2 ^ 1 = 2
│ └──────── fours 2 ^ 2 = 4
└─────────── eights 2 ^ 3 = 8
ones twos fours eights
───────────────────────────────────────────────
(0 * 1) + (1 * 2) + (0 * 4) + (1 * 8)
= 0 + 2 + 0 + 8
= 10
Octal系统 - 同样的事情,基数是8
, 数字0...7
正在使用中。
转换八进制04567
转为十进制:
4 5 6 7 radix ^ i
│ │ │ │ ──────────────
│ │ │ └── ones 8 ^ 0 = 1
│ │ └───── eights 8 ^ 1 = 8
│ └──────── 64:s 8 ^ 2 = 64
└─────────── 512:s 8 ^ 3 = 512
ones eights 64:s 512:s
───────────────────────────────────────────────
(7 * 1) + (6 * 8) + (5 * 64) + (4 * 512)
= 7 + 48 + 320 + 2048
= 2423
因此,要在数字系统之间进行转换,只需更改radix http://en.wikipedia.org/wiki/Radix.
要了解按位运算符,请参阅http://www.eskimo.com/~scs/cclass/int/sx4ab.html http://www.eskimo.com/%7Escs/cclass/int/sx4ab.html.
1 http://en.wikipedia.org/wiki/Radix: http://en.wikipedia.org/wiki/RadixIn http://en.wikipedia.org/wiki/RadixIn我们日常的十进制系统,基数,或者radix http://en.wikipedia.org/wiki/Radix is 10
。
一个数字系统基数告诉我们正在使用多少个不同的数字。
在十进制系统中,我们使用数字0
通过9
.
一个数字的意义是radix ^ i
, where i
是从右开始计数的数字位置,从零开始。
Decimal number 6789
细分:
6 7 8 9 radix ^ i
│ │ │ │ ──────────────
│ │ │ └── ones 10 ^ 0 = 1
│ │ └───── tens 10 ^ 1 = 10
│ └──────── hundreds 10 ^ 2 = 100
└─────────── thousands 10 ^ 3 = 1000
ones tens hundreds thousands
───────────────────────────────────────────────
(9 * 1) + (8 * 10) + (7 * 100) + (6 * 1000)
= 9 + 80 + 700 + 6000
= 6789
这个方案将帮助我们理解任何十进制数的数字系统。
十六进制系统的基数是16
,所以我们需要使用额外的数字A...F
表示10...15
。
让我们分解一下十六进制数CDEFh
以类似的方式:
C D E F radix ^ i
│ │ │ │ ──────────────
│ │ │ └── ones 16 ^ 0 = 1
│ │ └───── sixteens 16 ^ 1 = 16
│ └──────── 256:s 16 ^ 2 = 256
└─────────── 4096:s 16 ^ 3 = 4096
ones sixteens 256:s 4096:s
───────────────────────────────────────────────
(Fh * 1) + (Eh * 16) + (Dh * 256) + (Ch * 4096)
= (15 * 1) + (14 * 16) + (13 * 256) + (12 * 4096)
= 15 + 224 + 3328 + 49152
= 52719
我们刚刚转换了数字CDEFh
到十进制(即切换基数16
到基地10
).
In binary系统,基数为2
,所以只有数字0
and 1
被使用。
这里是二进制数的转换1010b
转为十进制:
1 0 1 0 radix ^ i
│ │ │ │ ──────────────
│ │ │ └── ones 2 ^ 0 = 1
│ │ └───── twos 2 ^ 1 = 2
│ └──────── fours 2 ^ 2 = 4
└─────────── eights 2 ^ 3 = 8
ones twos fours eights
───────────────────────────────────────────────
(0 * 1) + (1 * 2) + (0 * 4) + (1 * 8)
= 0 + 2 + 0 + 8
= 10
Octal系统 - 同样的事情,基数是8
, 数字0...7
正在使用中。
转换八进制04567
转为十进制:
4 5 6 7 radix ^ i
│ │ │ │ ──────────────
│ │ │ └── ones 8 ^ 0 = 1
│ │ └───── eights 8 ^ 1 = 8
│ └──────── 64:s 8 ^ 2 = 64
└─────────── 512:s 8 ^ 3 = 512
ones eights 64:s 512:s
───────────────────────────────────────────────
(7 * 1) + (6 * 8) + (5 * 64) + (4 * 512)
= 7 + 48 + 320 + 2048
= 2423
因此,要在数字系统之间进行转换,只需更改radix http://en.wikipedia.org/wiki/Radix.
要了解按位运算符,请参阅http://www.eskimo.com/~scs/cclass/int/sx4ab.html http://www.eskimo.com/%7Escs/cclass/int/sx4ab.html.