在C程序中,为什么只有十进制可以是负数,八进制和十六进制都只能是整数啊?
答案:2 悬赏:20 手机版
解决时间 2021-01-25 16:05
- 提问者网友:留有余香
- 2021-01-24 20:34
谢谢
最佳答案
- 五星知识达人网友:撞了怀
- 2021-01-24 22:01
目的是让他们可以表达的范围更大。
把他们都看作一堆bit。
10进制的第一个bit表示正负,剩余表示数。
当作2进制和16进制时,所有bit都表示数,8进制我不肯定,不过看你描述应该是一样的。
所以例如同样是32个bit,10进制能表示2^31-1个正数,1个0,2^31个负数;8和16进制都能表示2^32-1个正数和1个0。
在实际应用中,我们常常需要他们来表示这么大的数,所以没设计负数。
把他们都看作一堆bit。
10进制的第一个bit表示正负,剩余表示数。
当作2进制和16进制时,所有bit都表示数,8进制我不肯定,不过看你描述应该是一样的。
所以例如同样是32个bit,10进制能表示2^31-1个正数,1个0,2^31个负数;8和16进制都能表示2^32-1个正数和1个0。
在实际应用中,我们常常需要他们来表示这么大的数,所以没设计负数。
全部回答
- 1楼网友:何以畏孤独
- 2021-01-24 22:56
c语言编译后都会转换成二进制数据以便计算机识别。 所以你可以把八进制和十六进制转换成二进制数据,二进制可以表示负数
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯