鱼C论坛

 找回密码
 立即注册
查看: 43|回复: 6

[已解决]赋值号左边无符号整型,右边有符号整型,进行a=-1赋值,为什么等于65535?

[复制链接]
最佳答案
0 
发表于 2020-8-1 23:37:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
当赋值号左边的变量为无符号整型,右边的值为有符号整型时,则把内存中的内容原样复制。右边的数值的范围不应超出左边变量可以接受的数值范围。同时需要注意,这时负数将转换为正数。例如,变量a被说明为unsigned类型,在进行了a=-1的赋值操作后,将使a中的值为65535.  




我的理解
负整数在内存中是以“补码”形式存放的。

-1原码1000  0000  0000  0001
   反码1111  1111  1111  1110
   补码1111  1111  1111  1111
-1有符号整型补码转化为无符号整型为65535.(应该算对了)


不理解
为什么是16位二字节1000 0000 0000 0001,而不是32位四字节 1000 0000 0000 0000 0000 0000 0000 0001 这种?(脑子转不上来)
整型不是还有四字节的吗
最佳答案
2020-8-1 23:53:34
这里只是拿 2字节 的整形举例……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
415 
发表于 2020-8-1 23:53:34 | 显示全部楼层    本楼为最佳答案   
这里只是拿 2字节 的整形举例……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-8-1 23:55:53 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-8-1 23:53
这里只是拿 2字节 的整形举例……

他哪里说两个字节的整型举例了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-8-1 23:59:05 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-8-1 23:53
这里只是拿 2字节 的整形举例……

知道了,我这本书上unsigned类型有四字节的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
415 
发表于 2020-8-2 00:00:48 | 显示全部楼层
崔铭1315 发表于 2020-8-1 23:55
他哪里说两个字节的整型举例了

一共 16 位不是 2 字节么……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-8-2 00:24:47 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-8-2 00:00
一共 16 位不是 2 字节么……

老师,你从哪几个字知道16位的,我咋没看到啊,我看书本,他没说16位啊,这个类型也有四字节的呀,我眼瞎,脑子不好使。是unsigned吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
415 
发表于 2020-8-2 00:33:11 | 显示全部楼层
崔铭1315 发表于 2020-8-2 00:24
老师,你从哪几个字知道16位的,我咋没看到啊,我看书本,他没说16位啊,这个类型也 ...


1000  0000  0000  0001
你自己数一数是多少位……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2020-8-12 12:11

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表