回复:(NEG_I 整数的二进制补码指令)我有个疑问,按照补码的算法正数的补码不是原码吗?

Automann

  • 帖子

    6168
  • 精华

    138
  • 被关注

    308

论坛等级:至圣

注册时间:2004-12-23

普通 普通 如何晋级?

发布于 2011-11-04 22:18:15

5楼

需要分清3件事:求整数的补码、求整数的反码和反码的定义。
下面是STEP 7对求整数的补码、求整数的反码指令的解释:
NEG_I(对整数求补码)读取IN参数的内容并执行求二进制补码指令。二进制补码指令等同于乘以(-1)后改变符号(例如:从正值变为负值)。
INV_I(对整数求反码)读取IN参数的内容,并使用十六进制掩码W#16#FFFF执行布尔"异或"运算。此指令将每一位变成相反状态。
求反码的操作是将二进制数逐位取反(0变为1,1变为0)。求补码的操作是将二进制数逐位取反后加1,该指令用来实现绝对值相同的正数和负数之间的转换。
补码的定义如下:正数的补码就是它本身;将正数逐位取反后加1(对正数使用NEG_I指令),得到绝对值与它相同的负数的补码。
追求完美
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54617条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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