替代位置基础系统(十六进制、八进制、二进制)如何工作?如何将它们转换为十进制?

2024-05-07

我以前在编程课上没有学过这一点,但现在我需要知道它。有哪些学习这些数字以及如何转换它们的好资源?我几乎会像记住乘法表一样记住这些。


在我们日常的十进制系统中,基数或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.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

替代位置基础系统(十六进制、八进制、二进制)如何工作?如何将它们转换为十进制? 的相关文章

随机推荐