关于三菱plc 求补指令 二进制补码转换
我记得在以前学数电时,补码转换是如果为正数就不变,如果是负数,符号位不变数值位按位取反再加1(x)补=(x)反+1如:(100101001)原=(111010111)补在...
我记得在以前学数电时,补码转换是
如果为正数 就不变,如果是负数,符号位不变 数值位按位取反 再加1 (x)补=(x)反+1 如: (100101001)原=(111010111)补
在plc求补指令 为什么说是 绝对值不变的变号操作? 展开
如果为正数 就不变,如果是负数,符号位不变 数值位按位取反 再加1 (x)补=(x)反+1 如: (100101001)原=(111010111)补
在plc求补指令 为什么说是 绝对值不变的变号操作? 展开
2个回答
展开全部
您说的“如果为正数 就不变,如果是负数,……”,
这话不是“补码”一词的定义。这是有符号算术数的“补码表示法”。
“补码”一词有两种用法,意思有所不同。
一个含义是:两个机器代码互为“补码”。定义是:
如果两个机器码的“机器相加”结果是0,就称这两个机器码互为“补码”。
在采取第一个含义时,为了和下面的另一个含义区分,有时将这个含义的“补码”一语叫做“机器补码”。
另一个含义是:有符号算术数的“补码表示法”。这就是你上面说的了。
符号算术数的“补码表示法”定义是:
如果这个算术数是正数,就用这个数本身的二进制代码作为这个数的机器码;如果这个算术数是负数,就用这个数的绝对值的机器码的“机器补码”作为这个负数的机器码。这种表示方法称作“补码表示法”。
采用“补码表示法”时,只要原数值不超出“溢出”的界限,那么,机器码的二进制位的最高位就可以看作符号位。
根据上述规定,可以知道,如果两个有符号数绝对值相等符号相反,那么,他们的“补码表示法”的机器码,一定是互为“机器补码”了。
所以,对机器码执行“机器求补”的操作,恰好相当于对原算术数“乘以负一”。也就是您说的“绝对值不变的变号操作”。
至于您说的“取反加一”,那就是“机器补码”的求法。
既然互为补码的两个码机器和为零,而互为反码的两个机器码的和为“全1码”,而“全1码”再加1,机器加法最高进位丢掉,就成了“全零码”,当然“取反加一”就是“机器补码”了。
计算机的“求补”指令,既是“求机器补码”,又等于是有符号数乘以负一。
另外,再顺便指出:上面说的“机器求补”,是整个代码求补,并不需要对“符号位”单独处理。只要数值本身不溢出,那么按上述规则得到的机器码符号位就正好符合正0负1的规则。
这话不是“补码”一词的定义。这是有符号算术数的“补码表示法”。
“补码”一词有两种用法,意思有所不同。
一个含义是:两个机器代码互为“补码”。定义是:
如果两个机器码的“机器相加”结果是0,就称这两个机器码互为“补码”。
在采取第一个含义时,为了和下面的另一个含义区分,有时将这个含义的“补码”一语叫做“机器补码”。
另一个含义是:有符号算术数的“补码表示法”。这就是你上面说的了。
符号算术数的“补码表示法”定义是:
如果这个算术数是正数,就用这个数本身的二进制代码作为这个数的机器码;如果这个算术数是负数,就用这个数的绝对值的机器码的“机器补码”作为这个负数的机器码。这种表示方法称作“补码表示法”。
采用“补码表示法”时,只要原数值不超出“溢出”的界限,那么,机器码的二进制位的最高位就可以看作符号位。
根据上述规定,可以知道,如果两个有符号数绝对值相等符号相反,那么,他们的“补码表示法”的机器码,一定是互为“机器补码”了。
所以,对机器码执行“机器求补”的操作,恰好相当于对原算术数“乘以负一”。也就是您说的“绝对值不变的变号操作”。
至于您说的“取反加一”,那就是“机器补码”的求法。
既然互为补码的两个码机器和为零,而互为反码的两个机器码的和为“全1码”,而“全1码”再加1,机器加法最高进位丢掉,就成了“全零码”,当然“取反加一”就是“机器补码”了。
计算机的“求补”指令,既是“求机器补码”,又等于是有符号数乘以负一。
另外,再顺便指出:上面说的“机器求补”,是整个代码求补,并不需要对“符号位”单独处理。只要数值本身不溢出,那么按上述规则得到的机器码符号位就正好符合正0负1的规则。
2018-08-16
展开全部
就是dneg 就是这个数是正数 就是正数 是负数的话 乘以负一变成正数 类似于绝对值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询