打印

负数在单片机上的存在方式

[复制链接]
513|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
肉坨坨|  楼主 | 2020-4-26 07:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
diweo| | 2020-4-26 17:05 | 只看该作者
0xFE存在内存里面,它本身并不知道是什么类型。可以表示unsigned char的254,也可以表示char的-2。具体是哪种类型,取决于用什么样的指令去处理它。
当我们写源代码时,先定义char a=-2,后面再用到这个a时,编译器会生成合适(与char相关的)指令来处理它。
假设我们再在代码中用到强制类型转换,那么编译器生成的指令就不再是与char相关的指令了,而是与我们指定的类型相关的指令了。-2可能就被处理成254了。





使用特权

评论回复
板凳
qxwd123| | 2020-4-26 20:22 | 只看该作者
可以了解一下源码、反码、补码的相关知识
比如
原码, 反码, 补码详解- ziqiu.zhang - 博客园

使用特权

评论回复
地板
ayb_ice| | 2020-4-27 08:31 | 只看该作者
补码不就是这样的吗,,

负数的补码是按位取反再加一
00000001按位取反是11111110,再加1就是11111111,就是0xff

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

419

主题

431

帖子

0

粉丝