首页 > 其他 > 详细

原码 反码 补码

时间:2017-12-28 14:28:16      阅读:319      评论:0      收藏:0      [点我收藏+]

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

反码
正数:反码与原码相同
负数:符号位为 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是根据给出的%..是多少打印对应的值

原码 反码 补码

原文:https://www.cnblogs.com/weekbo/p/8135470.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!