[计算机进制转换]二进制、八进制、十进制、十六进制

1,084 阅读3分钟

「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战

前言

进位制是一种记数方式,亦称进位计数法位值计数法。利用这种记数法,可以使用有限种数字符号来表示所有的数值。一种进位制中可以使用的数字符号的数目称为这种进位制的基数或底数。若一个进位制的基数为n,即可称之为n进位制,简称n进制。现在最常用的进位制是十进制,这种进位制通常使用10个阿拉伯数字(即0-9)进行记数。

常见进位制及其用途

名称描述运算规律
二进制几乎所有的电子计算机内部都使用二进位制,分别为“0”和“1”表示“关”和“开”。用于大多数电子计数器逢二进一
八进制偶尔用于计算机领域,2到3次幂。八位数字为“0-7”。逢八进一
十进制世界上最常见的算术运算位进制系统,它是2和5的乘积,用于大多数机械计数器。其十位数字为 “0-9”。逢十进一
十六进制经常用于计算机领域,2到4次幂。十六位数字为“0-9”,接着是“A-F”。逢十六进一

进制转换

十进制和二进制相互转换

以十进制数:30为例

十进制转二进制

整数部分,被除数反复除以2,取商的整数部分做被除数,并依次记录下每次的余数,直到商为1为止。然后反向取余即为最后的结果(口诀:除基取余)

image.png

二进制转十进制

数字从右向左数,第一位为2的0次方,第二位为2的1次方,第三位为2的2次方,依次类推,再乘以对应位数的值。公式:第N位 * 2的N-1次方 结果相加。

例:

30 的二进制为:11110,现将其转换为十进制,从右到左

    0 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 + 1 * 2^4

= 0 + 2 + 4 + 8 + 16 = 30

十进制和八进制相互转换

以十进制数83为例

十进制转八进制

转换方法同十进制转二进制,将整数部分反复除以8,取商的整数部分做被除数,并依次记录下每次的余数,直到商小于8为止。

image.png

八进制转十进制

转换方法同二进制转十进制

例:

83 的 八进制为:123,将其转换为十进制:

  3 * 8^0 + 2 * 8^1 + 1 * 8^2
= 3 + 16 + 64 = 83 

十进制和十六进制相互转换

以十进制数30为例

十进制转十六进制

转换方法同十进制转二进制,把基数2,改为16,除基取余。

image.png

十六进制转十进制

转换方法同二进制转十进制

例:

30 的 16进制为:1e, 将他转换为10进制为:

// e 在 16进制中代表:14
    14 * 16^0 + 1 * 16^1
= 14 + 16 = 30

不同进制之间相互转换

先转换为十进制再转换为对应的进制。

二进制和八进制转换

将二进制01101000转换为八进制

 // 1. 先将二进制转换为十进制
     2^3 + 2^5 + 2^6 
 = 8 + 32 + 64 = 104 
 // 2. 将十进制数104转换为八进制(过程略),结果为150
 
 因此二进制 01101000 = 八进制 150
 

二进制和十六进制转换

方法规则同上

八进制和十六进制转换

方法规则同二进制和八进制转换

结语

以上就是进制之间转的全部内容。虽然是基础知识,但好记性不如烂笔头,以防使用的时候忘记啦~

image.png