原码,反码和补码

原码、反码和补码是机器存储一个具体数字的编码方式,格式为符号位+真值

先假设有一个十进制数字5并转换为二进制为101

原码

理论:正数的原码为符号位为0,其余位为根据需要补0的该正数的二进制数。

8位二进制举例:[+5]原 = 0000 0101
                           [-5]原 = 1000 0101

原码最容易理解

反码

理论:正数的反码是其本身,负数的反码是和原码相比符号位不变,其余位和原码其余位相反,即0变1,1变0。

8位二进制举例:[+5]反 = 0000 0101
                           [-5]反 = 1111 1010

由此可见,从负数的反码不能直接看出来数值是多少。

补码

理论:正数的补码是其本身,负数的补码是反码+1

8位二进制举例:[+5]补 = 0000 0101
[-5]补 = [-5]反+1 = 1111 1010 + 1 = 1111 1011

引用链接: 原码、反码和补码

你可能感兴趣的:(嵌入式学习,嵌入式硬件,linux,ubuntu,windows,c语言)