为什么1位8进制数可以表示3位2进制数
答案:3 悬赏:80
解决时间 2021-02-17 22:56
- 提问者网友:霸道又专情♚
- 2021-02-17 16:33
为什么1位8进制数可以表示3位2进制数
最佳答案
- 二级知识专家网友:随心随缘不随便
- 2021-02-17 18:08
8进制就是个位最大是7
要表示8的话就要向十位进一位 变成10
同理二进制要表示十进制的2的话也要进一位 变成10
那么3位的二进制数就有2*2*2种 就是8种数字
要用八进制数表示的话 只要1位就可以了
因为八进制数的个位可以是0.1.2.3....7 正好是8个数字
正好可以全部表示。
不知你理解了吗
要表示8的话就要向十位进一位 变成10
同理二进制要表示十进制的2的话也要进一位 变成10
那么3位的二进制数就有2*2*2种 就是8种数字
要用八进制数表示的话 只要1位就可以了
因为八进制数的个位可以是0.1.2.3....7 正好是8个数字
正好可以全部表示。
不知你理解了吗
全部回答
- 1楼网友:时光挺欠揍
- 2021-02-17 19:50
例如:
字符串
printf("\007"); -- 双引号间的字符串里的 \007 是 3位8进制数 007
printf("\x07"); -- 双引号间的字符串里的 \x07 是 2位16进制数 0x07
\ddd -- d=0,1,2,3,4,5,6,7
\xhh -- h=0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
ascii 007 是响铃符,printf("\007"); printf("\x07"); 可以听到 “嘀-”“嘀-”
数值写法
int i8= 007, ix=0x07; // 数值不带斜杠
printf("%d %d\n",i8,ix); // 打印出 10进制数值 7 7
i8 = 040; ix=0x3f;
printf("%d %d\n",i8,ix); // 打印出 10进制数值 32 63
- 2楼网友:闲懒诗人
- 2021-02-17 19:02
在计算机数制编码中存在着,八位数按权展开,2的零次方和2的一次方和2的二次方。
也就是说每3位二进制换成1位八进制,具体原因是:2的3次方=8,同时因为 2的四次方=16,所以还有一个就是二进制转16进制的时候是每4位一换。从八进制和十六进制转换成二进制的时候也可以使用这个技巧.
举例来说,二进制101100如果要转换成八进制,每三位一换,也就是把二进制分成两组:101和100,101转换成十进制为1*2^2+0*2^1+1*2^0=5,同理100转换成十进制是4。(在这里要说明一下,在8以内十进制数和八进制是一样的,因为还没进位么,就是说十进制里的7=八进制里的7,同理八进制里的0、1、2、3、4、5、6、7也等于十进制里的0、1、2、3、4、5、6、7,所以在此每三位转换成十进制就等于转换成八进制)所以101100对应的八进制数就应该是54。再说如果是1010这种二进制数,只要补零,分成001和010两组进行转换就行了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯