dt3tc 发表于 2018-3-24 11:39:20

有关数制转换

本帖最后由 dt3tc 于 2018-3-24 11:41 编辑

咱们知道-5和251的二进制形式都是11111011,那么请问如何确保编译器不会混淆的呢
谢谢

Zmynx_2017 发表于 2018-3-24 11:53:30

在存储空间中,是按照补码的形式存储的,如果存储空间存储的是这个11111011,

那么他只会认为这个是一个负数-5,而不会认为是251,所以不会存在混淆的问题在编译器上

你认为他会混淆,是因为实际他可以表示的范围没有这么大,所以会产生溢出,这个是你在编写程序中应该

注意避免这样的问题。

风过无痕丶 发表于 2018-3-24 11:54:25

这取决于你放置这个二进制的容器是怎么样的~
这里拿 char打比方~
unsigned char   无符号字符型~ 也就是说 他只能存放非负数的值!也就是说把符号位也计入数值里面~
1111 1011这里全部表示的都是数值!
char               这是有符号位的字符型~   符号位为1 那么他是负数, 符号为0 那么他是正数~
1111 1011 而这里的第一位表示符号位

累丶点 发表于 2018-3-24 12:18:29

小甲鱼有一期视频专门讲进制转换的你可以去看看比较详细

dt3tc 发表于 2018-3-24 13:30:48

大家的回答都很有道理,但是最佳答案只有一个,不好意思了
页: [1]
查看完整版本: 有关数制转换