SF符号位什么时候为1,什么时候为0!二进制如何判断符号位正负!
首先让我们看一下SF到底是什么?
SF(sign flag)符号位:当运算结果为负时,SF置1,记为NG(negative),为正时清零记为NZ(Non Zero).
那么我看这段说明简直就是一点用处也没用对不对?我们也知道SF是符号位,也知道他是判断数值正负,那么究竟该如何判断正负呢?
看看符号位数字化:
机器数的另一个特点就是符号位数字化。我们把最高位定义为符号位,符号位为0,该数为正;符号位为1,该数为负。
首先我列出4个二进制:1、10101111 2、1011001 3、110010011 4、110011
好的,我们来根据例子来分析:
第一个:最高位是1,所以他是负数、
第二个只有七位,这是因为前面是一个0.所以他是正数。
第三个:有9位,那么再16位调试环境下就是进位的操作了,那么还是得从第八位看,还是正数
第四个:只有6位,那么在前面加2个0,所以还是0、 是正数。
当然,机器中并不是遇到第八位的就是负值,也要分有符号位和无符号位
下一篇文章我们开始介绍无符号位和有有符号位
本文章转自五度博客:http://blog.jsx8.com