问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

8进制转2进制怎么转?

发布网友 发布时间:2022-04-23 04:02

我来回答

5个回答

热心网友 时间:2022-05-31 09:26

将二进制、八进制、十六进制转换为十进制

二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。

假设当前数字是 N 进制,那么:

对于整数部分,从右往左看,第 i 位的位权等于Ni-1

对于小数部分,恰好相反,要从左往右看,第 j 位的位权为N-j。

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

1) 整数部分

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

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

从右往左看,第1位的位权为 80=1,第2位的位权为 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(十进制)

从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… 第n位的位权就为 16n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

将二进制数字转换成十进制也是类似的道理

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

从右往左看,第1位的位权为 20=1,第2位的位权为 21=2,第3位的位权为 22=4,第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(十进制)

小数部分和整数部分相反,要从左往右看,第1位的位权为 8-1=1/8,第2位的位权为 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。

更多转换成十进制的例子:

二进制:1001 = 1×23 + 0×22 + 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9(十进制)
二进制:101.1001 = 1×22 + 0×21 + 1×20 + 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625(十进制)
八进制:302 = 3×82 + 0×81 + 2×80 = 192 + 0 + 2 = 194(十进制)
八进制:302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375(十进制)
十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)
将十进制转换为二进制、八进制、十六进制

将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样,下面我们分别讲解。

1) 整数部分

十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是:

将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数;
保留余数,用商继续除以 N,又得到一个新的商和余数;
仍然保留余数,用商继续除以 N,还会得到一个新的商和余数;
……
如此反复进行,每次都保留余数,用商接着除以 N,直到商为 0 时为止。
把先得到的余数作为 N 进制数的低位数字,后得到的余数作为 N 进制数的高位数字,依次排列起来,就得到了 N 进制数字。

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

从图中得知,十进制数字 36926 转换成八进制的结果为 110076。

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

从图中得知,十进制数字 42 转换成二进制的结果为 101010。

2) 小数部分

十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法。具体做法是:

用 N 乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;
将积的整数部分取出,再用 N 乘以余下的小数部分,又得到一个新的积;
再将积的整数部分取出,继续用 N 乘以余下的小数部分;
……
如此反复进行,每次都取出整数部分,用 N 接着乘以小数部分,直到积中的小数部分为 0,或者达到所要求的精度为止。
把取出的整数部分按顺序排列起来,先取出的整数作为 N 进制小数的高位数字,后取出的整数作为低位数字,这样就得到了 N 进制小数。

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

从图中得知,十进制小数 0.930908203125 转换成八进制小数的结果为 0.7345。

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

从图中得知,十进制小数 0.6875 转换成二进制小数的结果为 0.1011。

如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换,然后再合并在一起即可。例如:

十进制数字 36926.930908203125 转换成八进制的结果为 110076.7345;
十进制数字 42.6875 转换成二进制的结果为 101010.1011。

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

十进制 0.51 对应的二进制为 0.100000101000111101011100001010001111010111...,是一个循环小数;
十进制 0.72 对应的二进制为 0.1011100001010001111010111000010100011110...,是一个循环小数;
十进制 0.625 对应的二进制为 0.101,是一个有限小数。
二进制和八进制、十六进制的转换

其实,任何进制之间的转换都可以使用上面讲到的方法,只不过有时比较麻烦,所以一般针对不同的进制采取不同的方法。将二进制转换为八进制和十六进制时就有非常简洁的方法,反之亦然。

1) 二进制整数和八进制整数之间的转换

二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:

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

八进制整数转换为二进制整数时,思路是相反的,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将八进制整数 2743 转换为二进制:

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

2) 二进制整数和十六进制整数之间的转换

二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:

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

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

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

由于在C语言编程中,二进制、八进制、十六进制之间几乎不会涉及小数的转换,所以这里我们只讲整数的转换,大家学以致用足以。另外,八进制和十六进制之间也极少直接转换,这里我们也不再讲解了。

总结

本节前面两部分讲到的转换方法是通用的,任何进制之间的转换都可以采用,只是有时比较麻烦而已。二进制和八进制、十六进制之间的转换有非常简洁的方法,所以没有采用前面的方法。

热心网友 时间:2022-05-31 09:26

八进 二进
0 --- 000
1 --- 001
2 --- 010
3 --- 011
4 --- 100
5 --- 101
6 --- 110
7 --- 111
上面记得住就行了.
如果你记不得,你应该会十进制变为二进制吧!你只要把它成三位,一位或两位前面加0就可以了.
如:十进制2变成二进制就是10,然后就在前面加0,变为010就行了.
十六转二进制,是同样的道理,就是十到十五时,就会为A、B、C ..F,但是一样,只要你知道十进制变为二进制就行了.不足四位就前面加0,变成四位.
如:十进制是10变为二进制就是1010,十六是A变为二时制也就是1010

热心网友 时间:2022-05-31 09:27

付费内容限时免费查看回答一位8进制数等于3位2进制数

2的三次方是8,所以可以看成三位二进制数为一位八进制数。比如:二进制的110001等于八进制的61。当八进制转为二进制时,把一位八进制拆成三位二进制即可。

6=4+2=2^2+2^1所以为110,

1=2^0所以为001,所以最后为110001

希望我的回答能够帮助到您祝您生活愉快哦

热心网友 时间:2022-05-31 09:27

这个程序只是负责八进制数的转换,我并没有加程序保护,所以请正确输入八进制数
#include <stdio.h>

int main()
{
int num;
printf("请输入8进制数\n");
scanf("%o",&num);
int beichushu = num;
int yushu = 0;
int b[1000];
int n = 0;
while (true)
{
yushu = beichushu%2;
beichushu = beichushu/2;
b[n] = yushu;
n++;
if (beichushu == 0)
break;
}
for(int j = n-1; j >= 0; j--)
{
printf("%d",b[j]);
}
printf("\r\n");
return 0;
}

热心网友 时间:2022-05-31 09:28

一位一位取出来,
一位拉成3位:
0 -- 000
1 -- 001
2 -- 010
3 -- 011
4 -- 100
5 -- 101
6 -- 110
7 -- 111
========
例如:127
1 拉成 001
2拉成 010
7 拉成 111
连起来:001 010 111
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
主角落水而故,重生在明朝,娶了个武功很高的老婆,生个儿子叫李寻欢_百度... 广东的焖牛腩的做法是什么呢? 微信抽签助手小程序有人会作弊吗? 黑暗之魂3boss的灵魂怎么用:游戏攻略分享 秋季备孕应注意什么 腰肌酸痛怎么缓解疼痛 腰肌酸痛是什么原因 古代对时是什么意思? 抵押合同的内容一般包括哪些? 人临终前会出现什么现象? 八进制的数如何换成二进制的数 手机怎么当空调的遥控器? 手机怎么当遥控器开空调? 绘制的点不能显示,如何修改CAD的点样式呢? cad有什么命令把我想要的图形设置为点的样式。 CAD中修改点样式没有快捷键吗? 台式电脑怎样设置运行 怎样看一台电脑的性能,他的参数有那些 小米盒子上如何安装当贝市场? 买2手台式电脑 怎样看电脑性能 怎么在小米盒子上安装当贝市场 怎么判断一台电脑好不好? 如何给小米盒子安装第三方软件 CAD编辑器怎么进行怎么修改点样式? 小米盒子怎么下载当贝软件? 台式电脑怎么看运行内存有多大 如何在小米盒子上安装第三方软件 怎么把当贝软件装到小米盒子上 台式电脑运行内存怎么看 苹果XR怎么使用双卡双待,为什么一张移动一张电信不能用 八进制转二进制? 八进制怎么转换为二进制 二进制和八进制怎样相互转换?? 八进制转换成二进制 八进制二进制互相转换方法?谢谢回答! 如何将八进制数直接转化为二进制数 带小数点的八进制怎么转换成二进制 比如:573.26O? 8进制怎么转化成2进制数 能帮我写一下八进制152转成二进制的计算过程吗? 求高手详细讲解八进制与二进制数之间的转换原理? 八进制怎样转化为二进制和十进制 八进制357变换成等值的二进制数是 八进制数转换成二进制数的方法为每位8进制数用3位二进制数代替正确吗? 八进制数8转换为二进制为多少 八进制数154转换成二进制数具体点?? 八进制怎么转换成二进制 美团外卖可以异地订餐吗? iPhone xr 插了两张电信卡,副卡怎么收不到短信呢?电话也打不通 有没有用来追女孩子的表情包??求介绍。 如何迅速追到女生,靠的是套路,撩妹动图表情