原码 反码 补码

Posted IDEA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原码 反码 补码相关的知识,希望对你有一定的参考价值。

概述:
数值的表示方法——原码、反码和补码
原码:最高位为符号位,其余各位为数值本身的绝对值

反码
正数:反码与原码相同
负数:符号位为 1,其余位对原码取反

补码
正数:原码、反码、补码相同
负数:最高位为 1,其余位为原码取反,再对整个数加 1
计算机原码用于表示有符号整数中的正数和无符号整数

================================================

计算机用【原码】存储(有符号正数)和(无符号整数)
计算机用【补码】存储(有符号负数),补码减1=反码,反码取反=原码

示列
int a = -1; 这里的-1用补码存储
print(%d,%u,a,a);
%d按打印=-1,为什么是-1(原码),因为这里打印的有符号十进制,如果这里是-100,%u打印,就会打印-00,
%u按补码打印=4294967295(补码)%u按照无符号十进制打印。

原码:1000 0000 0000 0000 0000 0000 0000 0001
反码:1111 1111 1111 1111 1111 1111 1111 1110
补码:1111 1111 1111 1111 1111 1111 1111 1111 补码要从反码哪里加1

%d按照有符号十进制打印,%u按照无符号十进制打印。

pritf是直接抓取二进制数,无论这个数据以前是什么类型,按照%d,%u,%....来解析

printf是根据给出的%..是多少打印对应的值

以上是关于原码 反码 补码的主要内容,如果未能解决你的问题,请参考以下文章

一个数的原码,反码,补码怎么算

原码反码补码

原码反码补码

知道 补码,如何 计算 原码

二进制的原码、补码、反码详解

原码反码补码与位运算