补码

计算机基础(补码)

原码

也叫符号-绝对值码

最高位0表示正数 1表示负数,其余二进制位是该数字的绝对值

 

原码简单易懂

加减运算复杂

存在加减乘除四种运算,增加了CPU的复杂度

零的表示不唯一

反码

反码运算不便,也没有在计算机中应用

移码

表示数值平移n位,n称为移码量

移码主要用于浮点数的阶码的存储

补码

十进制转二进制

正整数转二进制

  除2取余,直至商为零,余数倒序排序

负整数转二进制

先求与该负数想对应的正整数的补码,然后将所有位取反,末尾加1,不够位数时,左边补1

(-3) 正整数补码 011 取反 100 末尾加1 101   左边补1 11111101 对应的十六进制 0X  FFFFFFFD

二进制转十进制

如果首位是0,则表明是正整数,按普通方法来求

如果首位是1,则表明是负整数

  • 将所有位取反,末尾加1,所得数字就是该负数的绝对值

101111 取反 010000 加1 010001 -17

1001010 取反 0110101 加1 0110110  36 -54

#include <stdio.h>

int main(void) 
{
    
    int i = -100;
    printf("%#X\n", i);


    int j = 0xFFFFFFCA;
    printf("%d\n", j);

    return 0;
}

posted @ 2024-05-13 15:36  万溪汇海  阅读(66)  评论(0编辑  收藏  举报