[已解决]为什么是144,那个大佬能告诉我运算过程

简介: 查看: 2469|回复: 7 [已解决]为什么是144,那个大佬能告诉我运算过程 [复制链接] 小可爱. 小可爱. 当前离线 UID755304 日志 相册 贡献 荣誉 积分231 狗

查看: 2469|回复: 7

[已解决]为什么是144,那个大佬能告诉我运算过程

[复制链接]

小可爱.

小可爱.

当前离线

UID755304

日志

相册

贡献

荣誉

积分231

狗仔卡

头像被屏蔽

电梯直达

1#

发表于 2022-6-14 15:59:44

|

只看该作者

|倒序浏览

|阅读模式

提示: 作者被禁止或删除 内容自动屏蔽

收藏0

分享

淘帖0

点赞0

小甲鱼最新课程 -> https://ilovefishc.com

回复

使用道具

举报

置顶卡

千斤顶

显身卡

wp231957

wp231957

当前离线

UID644522

日志

相册

贡献

荣誉

积分10788

狗仔卡

2#

发表于 2022-6-14 16:03:49

From FishC Mobile

|

只看该作者

400-256=144???

这数据溢出的代码没有研究的价值

小甲鱼最新课程 -> https://ilovefishc.com

回复

支持

反对

使用道具

举报

显身卡

小可爱.

小可爱.

当前离线

UID755304

日志

相册

贡献

荣誉

积分231

狗仔卡

头像被屏蔽

3#

楼主|

发表于 2022-6-14 16:08:30

|

只看该作者

提示: 作者被禁止或删除 内容自动屏蔽

小甲鱼最新课程 -> https://ilovefishc.com

回复

支持

反对

使用道具

举报

显身卡

临时号

临时号

当前离线

UID956952

日志

相册

贡献

荣誉

积分2809

狗仔卡

4#

发表于 2022-6-14 16:10:08

|

只看该作者

unsigned char的最高值是256

b=200

c=200

a=b+c,本来应该是400,但a也是unsigned char,unsigned char的最高值是256,所以数据溢出了,400-256=144

小甲鱼最新课程 -> https://ilovefishc.com

回复

支持 1

反对 0

使用道具

举报

显身卡

wp231957

wp231957

当前离线

UID644522

日志

相册

贡献

荣誉

积分10788

狗仔卡

5#

发表于 2022-6-14 16:11:26

From FishC Mobile

|

只看该作者

小可爱. 发表于 2022-6-14 16:08

我只是想知道他是怎末算的,能具体些吗?

这东西不同编译器可能会给出不同答案,所以所谓的真相,没有意义

400转成二进制应该是有9位,而uchar只支持8位

所以第9位的256被截断,故剩144

小甲鱼最新课程 -> https://ilovefishc.com

回复

支持

反对

使用道具

举报

显身卡

风车呼呼呼

风车呼呼呼

当前离线

UID1250172

日志

相册

贡献

荣誉

积分559

狗仔卡

6#

发表于 2022-6-14 16:57:37

|

只看该作者

本楼为最佳答案

想知道原因很简单,打开你电脑上自带的计算器,选择程序员模式的,在上面输入400,观察它的二进制结果,char只占1字节(即8位),所以只有低8位数才是赋给a的值。然后你在计算器上输入144,再看它的二进制数,自然就知道了。(如果基本的一些知识不了解,二进制完全没接触过,也不懂内存中变量大小字节和二进制位的关系,那我也爱莫能助)

小甲鱼最新课程 -> https://ilovefishc.com

回复

支持

反对

使用道具

举报

显身卡

jackz007

jackz007

当前离线

UID482672

日志

相册

贡献

荣誉

积分18179

狗仔卡

7#

发表于 2022-6-14 17:37:53

|

只看该作者

本帖最后由 jackz007 于 2022-6-14 18:10 编辑

a = b + c = 200 + 200 = 400 = 0x0190

400 已经超出一个字节的表达范围(256),对于 char 型的变量 a,字节进位(0x01)无法得到保存,只能保存其余的低位字节,这个低位字节数值是 0x90,也就是十进制数值 144。

小甲鱼最新课程 -> https://ilovefishc.com

回复

支持

反对

使用道具

举报

显身卡

大胆智多星

大胆智多星

当前离线

UID1305507

日志

相册

贡献

荣誉

积分29

狗仔卡

8#

发表于 2022-6-14 17:46:00

|

只看该作者

数据溢出问题,

小甲鱼最新课程 -> https://ilovefishc.com

回复

支持

反对

使用道具

举报

显身卡