回复:困惑INT数据类型的大小

Automann

  • 帖子

    6168
  • 精华

    138
  • 被关注

    308

论坛等级:至圣

注册时间:2004-12-23

普通 普通 如何晋级?

发布于 2013-03-09 14:43:06

1楼

quote:以下是引用萧⑨郎在2013-03-09 10:25:47的发言:
众所周知,INT数据类型的范围为:-32768~+32767,如下图:



但是在实际监控中却发现INT数据类型的变量的值超出此范围,见下图:



如何理解呢?

按INT数据类型最高位为符号位的说明,那1的数据如下:



那-1就应该是把1的最高位变为1啊,如下图:



但是,实际上图的值为+32769。
如何理解呢?

65535(十进制)=FFFF(十六进制)
FFFF(十六进制)=-1(十进制)
65535(十进制)=-1(十进制)???
如何理解呢?

求高手解惑。谢谢。

"那-1就应该是把1的最高位变为1啊“是错误的,LZ基本概念不清,1的二进制数取反加1得到16#FFFF,就是-1的补码。65535与程序状态的显示格式(十进制)有关。
追求完美
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。