1468188287 发表于 2020-7-31 11:31:53

新手求助

请问这个是什么意思呀,感觉不是很理解耶,希望能帮忙解答一下,谢谢{:10_254:}

永恒的蓝色梦想 发表于 2020-7-31 11:37:49

你往杯子里装水,水溢出来了,溢出来的部分就被丢弃了。

livcui 发表于 2020-7-31 11:39:47

本帖最后由 livcui 于 2020-7-31 11:44 编辑

帖子已经解释的很清楚了呀,
因为将 200 赋值给了 c,十进制的200 = 二进制1 1001 0000,c 只有八位,而 1 1001 0000 有 9 位,装不下,就把前面的 1 舍弃掉了,等于赋值 1001 0000
舍弃后 c = 144

SHRS23 发表于 2020-7-31 11:42:30



红框正常情况下的200+200=400的二进制表示

但是char类型只有一个字节,也就是八位二进制,所以只能容纳绿色框里面的内容
强行截掉绿框外面的1变成了这样


计算器默认是有符号 signed char 所以是-122 ,这个二进制如果当作无符号数输出(%u)就是144

zltzlt 发表于 2020-7-31 12:07:30

将前面的多出的 1 省略,因为 char 只占 8 个字节

1468188287 发表于 2020-7-31 17:29:26

SHRS23 发表于 2020-7-31 11:42
红框正常情况下的200+200=400的二进制表示

但是char类型只有一个字节,也就是八位二进制,所以只能 ...

谢谢层主,我悟啦{:10_297:}

SHRS23 发表于 2020-7-31 17:32:25

1468188287 发表于 2020-7-31 17:29
谢谢层主,我悟啦

{:10_323:}问题不大
页: [1]
查看完整版本: 新手求助