永发信息网

c语言中 哪几种进制的数是不能表示负数的?

答案:2  悬赏:0  手机版
解决时间 2021-03-10 10:33
  • 提问者网友:斑駁影
  • 2021-03-09 14:54
我知道八进制不可以。但为什么呢?请问还有其他进制的数是不能表示负数的吗?
最佳答案
  • 五星知识达人网友:话散在刀尖上
  • 2021-03-09 15:46
因为计算机的CPU只能识别2进制的数,所以任何进制的数最终都要转变成2进制供计算机处理。
在二进制中,计算机看一个数是否是复数主要是看这个数第一位是否是1,1为负数,0为正数。
所以说,不管什么进制的数,都可以用来表示负数,比如八进制中的70,转换成2进制就是11110000,第一位为1,所以可以理解成一个负数。
能不能表示负数只是看这个数用在什么场合,和什么进制无关的。只是因为大多数情况下其他进制的数只是用来表示数量,一般不用在区分正负号的场合,所以让你认为八进制不能表示负数。
全部回答
  • 1楼网友:雪起风沙痕
  • 2021-03-09 16:58
#include int main() { int m, a[17], i, k, p, q; while(scanf("%d", &q) == 1) { if(q < 0) m = - q; else { m = q; } for(i = 0; i <= 16; i ++) { a[i] = 0; } p = q; for(i = 0; (int)m != (int)0; i ++) { a[i] = m % 2; m = (int)(m / 2); } printf("%11d-->", p); if(p < 0) { printf("-"); } for(i = 16; i >= 0; i --) { if(a[i] != 0) k = 1; if(k == 1) { printf("%d", a[i]); } } if(q == 0) { printf("0"); } k = 0; printf("\n"); } return 0; } 10转2
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯