主页 > 最新imtoken官网下载链接 > 二进制 1111000 转换为八进制

二进制 1111000 转换为八进制

最新imtoken官网下载链接 2023-01-18 09:54:50

更通俗的理解是,假设一个多位数字(由多位数字组成的数字)的数字为1,那么它所代表的值的大小就是该数字的位权重。

1)整数部分

例如,将八进制数 53627 转换为十进制:

53627 = 5×84+ 3×83+ 6× 82+ 2×81+ 7×80=22423(十进制)

从右到左,第一个bit的比特权重是80=1,第二个bit的比特权重是81=8,第二个bit的比特权重是81=8。第 3 位的位重为 82=64,第 4 位的位重为 83=512,第 5 位的位重为 84=4096……第 n 位的位重为 8n-1。将数字乘以数字权重并将它们相加得到十进制形式。

请注意,这里我们需要以十进制形式表示位权重。

再举个例子,将十六进制数 9FA8C 转换为十进制:

9FA8C =9×164+ 15×163+ 10×162+ 8×161+ 12×160= 653964(十进制)

从右到左,第一位的位重是160=1,第二位的位重是161=16,第三位的位重是162=256。第4位的位重是163=4096,第5位的位重是164=65536……第n位的位重是16n-1。将数字乘以数字权重并将它们相加得到十进制形式。

二进制数转十进制类似:

11010 = 1×24+ 1×23+ 0×22+ 1×21+ 0×20= 26(十进制)

从右到左看,第一个位置的比特权重是20=1,第二个位置的比特权重是21=2,第三个位置的比特权重是22=4,第四个位置是22=4。 23的比特权重=8,第5比特的比特权重是24=16……第n比特的比特权重是2n-1。将数字乘以数字权重并将它们相加得到十进制形式。

2)小数部分

例如,要将八进制数 423.5176 转换为十进制:

423. 5176=4×82+ 2×81+ 3×80+ 5×8-1+ 1×8-2+ 7×8-3+ 6×8-4=275.65576171875(十进制)

小数部分与整数部分相反。从左到右看,第一位的位重是8-1=1/8,第二位的位重是8-2=1/64,第二位的位重是8- 2=1/64。第3位的位重是8-3=1/512,第4位的位重是8-4=1/4096……第m位的位重是8-m。

再举个例子,把二进制数1010.1101转换成十进制:

1010.1101 = 1×23+ 0×22+ 1×21 + 0×20+ 1×2-1+ 1×2-2+ 0×2-3+ 1×2-4 =10.8125(十进制)

小数部分和整数部分相反,从左到右看,第1位的位权重为2-1=1/2,第2位的位权重为2-2=1/4,第 3 位的位重为 2-3 =1/8,第 4 位的位重为 2-4=1/16……第 m 位的位重为 2-m。

更多转十进制示例:

十进制转二进制、八进制、十六进制

小数转换成其他基数时比较复杂,整数部分和小数部分的算法不同,下面分别说明。

1)整数部分

十进制整数到N进制整数的转换采用“N除余,倒序排列”的方法。具体方法是:

将先得到的余数作为N进制数的低位,后得到的余数作为N进制数的高位,依次排列得到N进制号码。

下图演示了十进制数36926转八进制的过程:

从图中可以看出,十进制数36926转换成八进制的结果是110076。

下图演示了十进制数42转二进制的过程:

从图中可以看出,十进制数42转换成二进制的结果是101010。

2)小数部分

小数小数转换为N进制小数,采用“N相乘,四舍五入,依次排列”的方法。具体方法是:

将取出的整数部分按顺序排列,先取出的整数作为N进制小数的高位,后取出的整数作为低位,这样N获得 -ary 十进制。 .

下图演示了将小数0.930908203125转换为八进制的过程:

从图中可知,小数0.930908203125转八进制的结果是0.7345。

下图演示了将小数0.6875转换为二进制的过程:

从图中可知,小数0.6875转为二进制的结果是0.1011。

如果一个数同时包含整数部分和小数部分,则将整数部分和小数部分分开,按照上述方法完成转换,然后将它们组合在一起。例如:

下表列出了前17位十进制整数与二进制、八进制、十六进制的对应关系:

十进制

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

二进制

1

10

11

100

101

110

111

p>

1000

1001

1010

1011

1100

1101

1110

1111

10000

八进制

1

2

3

4

5

6

7

10

11

12

13

14

15

16

p>

17

20

十六进制

1

2

3

4

5

6

7

8

9

一个

B

C

D

E

F

10

请注意,当十进制小数转换为其他小数时,结果可能是无限小数。请看下面的例子:

二进制和八进制、十六进制转换

其实hex之间的任何转换都可以使用上面提到的方法,但是有时候比较麻烦1000十进制,所以对于不同的base一般采用不同的方法。有很多巧妙的方法可以将二进制转换为八进制和十六进制,反之亦然。

1)二进制整数与八进制整数的转换

将二进制整数转换为八进制整数时,每三位二进制转换为一位八进制数,运算顺序从低到高,高位小于三位用零填充。下图演示了如何将二进制整数 1110111100 转换为八进制:

从图中可以看出,二进制整数1110111100转换为八进制的结果是1674。

当八进制整数转换为二进制整数时1000十进制,想法正好相反。每个八进制数转换为三位二进制数,运算顺序也是从低到高进行的。下图演示了如何将八进制整数 2743 转换为二进制:

从图中可以看出,八进制整数2743转换为二进制的结果是10111100011。

2)二进制整数与十六进制整数的转换

将二进制整数转换为十六进制整数时,每四位二进制转换为一个十六进制数,运算顺序从低位到高位,高位四位用零填充。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:

从图中可以看出,二进制整数10 1101 0101 1100转换为十六进制的结果是2D5C。

将十六进制整数转换为二进制整数时,思路正好相反。每个十六进制数字都转换为四位二进制数,运算顺序也是从低到高进行的。下图演示了如何将十六进制整数 A5D6 转换为二进制:

从图中可以看出,十六进制整数A5D6转换为二进制结果为1010 0101 1101 0110。

因为在C语言编程中,几乎从不涉及二进制、八进制、十六进制之间的小数转换,所以这里只讲整数的转换,大家学以致用就足够了。另外,八进制和十六进制之间的直接转换很少,这里就不解释了。

总结

本节前两部分提到的转换方法是通用的,可以使用任何碱基之间的转换,但有时会很麻烦。二进制与八进制和十六进制之间的转换有一个非常简洁的方法,所以没有使用前面的方法。