美文网首页
二进制原码、反码、补码运算及标志位

二进制原码、反码、补码运算及标志位

作者: kary贾 | 来源:发表于2018-03-22 15:53 被阅读0次

一、二进制原码、反码、补码的转换

原码:

正整数的原码:这个数的二进制,符号位为0;正整数的原码=补码=反码

例1:+66

66的二进制:1000010,所以+66的原码: 0 1000010 =补码: 0 1000010=反码: 0 1000010

负整数的原码:仍是这个数的二进制,符号位为1;负整数的原码、反码、补码计算:先求原码,再求反码,最后求补码;

原码转换为反码:符号位不变,数值位按位取反;

原码转换为补码:符号位不变,数值位按位取反,末尾在+1;

例2:-66

66的二进制:1000010,所以-66的原码:1 1000010  补码:1 0111101 反码:1 0111110

二、二进制原码、反码、补码的加减运算及标志位

1.补码加减基本公式

加法:

整数 [A]补+[B]补=[A+B]补 (mod 2n+1)

小数 [A]补+[B]补=[A+B]补 (mod 2)jianfa

减法:

整数 [A-B]补=[A]补+[-B]补 (mod 2n+1)

小数 [A-B]补=[A]补+[-B]补 (mod 2)

2.标志位

CF(Carry Flag):  进为标志位。主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。在8位二进制中,如果计算的结果超过[0,255]的范围,就有进位,CF就被置为1,如果结果再[-128,127]范围内,就是没有进位CF被置为0。

OF(Overflow Flag):溢出。用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。在8位二进制中,如果一个运算的结果最终超过[-128,127]无论是大于127还是小于-128就被认为是溢出,OF被置为1,如果结果在[-128,127]就认为没溢出OF被置为0。

SF(Sign Flag):符号标志。用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。

ZF(Zero Flag):零标志。用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。

PF(Parity Flag):奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。

AF(Auxiliary Carry Flag):辅助进位标志。在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:(1)、在字操作时,发生低字节向高字节进位或借位时;(2)、在字节操作时,发生低4位向高4位进位或借位时。

相关文章

  • 二进制原码、反码、补码运算及标志位

    一、二进制原码、反码、补码的转换 原码: 正整数的原码:这个数的二进制,符号位为0;正整数的原码=补码=反码 例1...

  • python中的原码反码和补码

    python中的原码反码和补码 原码反码和补码的概念 原码:原码是二进制数字的一种简单的表示法。二进制首位为符号位...

  • 2018-10-22 Python31 原码、反码、补码

    原码、反码、补码 1)如何计算补码?规则: 正数:原码 = 反码 = 补码负数:反码 = 符号位不变,其他位取反补...

  • Python基础之位运算符(含原码反码补码的通俗解释)

    目录 1 二进制 2 原码、反码、补码 3 位运算符 4 位运算符使用技巧 上回学习运算符时,漏了位运算符,因为位...

  • Java 二进制

    原码、反码、补码 二进制的最高位是符号位, 0表示正数, 1表示负数; 正数的原码, 反码, 补码都一样; 负数的...

  • 位运算

    位运算 位运算是指对数据二进制位进行运算 按位与& 按位或| 按位异或^ 非~ 原码、反码、补码 按位与& 都为1...

  • 数据的表示

    1位符号位+7位数值位正数:原码=反码=补码负数:反码=原码数值位取反 符号位不变补码=反码+1补码的表示范围位数...

  • 原码、反码、补码

    正数 原码:一个数的二进制 反码:正数的反码就是其原码 补码:正数的补码就是其原码 例 负数 原码:一个数的二进制...

  • 用位运算求一个数的绝对值

    在计算机内,数据都是以二进制形式的补码存储和运算,正数的补码为它的原码,而负数的补码=反码+1,对于负数的反码,是...

  • 补码

    原码、反码、补码 原码:符号位 反码:减法变加法 补码:+1解决-0问题 数学原理 同余 反码:mod127 补码...

网友评论

      本文标题:二进制原码、反码、补码运算及标志位

      本文链接:https://www.haomeiwen.com/subject/klyaqftx.html