原码,反码,补码

原码

什么是原码

原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负

最大值 0 1 1 1 1 1 1 1 => +127

最小值 1 1 1 1 1 1 1 1 => -127

原码的弊端

利用原码对正数进行计算是不会有问题的

但是如果是负数计算,结果就会出错,实际运算结果,跟我们预期结果是相反的。

反码

目的

为了解决不能计算负数的问题而出现的

计算规则

正数的反码不变,负数的反码在源码的基础上,符号位不变,数值取反,0变1,1变0。

例:

-56 原码 1 0 1 1 1 0 0 0

-56 反码 1 1 0 0 0 1 1 1

反码的弊端

负数运算时,结果不跨0,没问题,结果跨0,跟实际结果会有1 的偏差

补码

目的

为了解决负数计算时跨0的问题而出现的

计算原则

正数的补码不变,负数的补码在反码的基础上+1

正数的原码,反码,补码相同

补码的注意点

计算机中存储和计算机以补码的形式进行的

-128 = > 1 0 0 0 0 0 0 0 没有原码和反码

所以一个字节取值单位 -128~127

<< 向左移动,低位补0

(8) 00001000 << 2 = > (32) 00100000

右移: >>向右移动,高位补0 或 1(补1补0跟原来的保持一致)

(8) 00001000 >> 2 => (2) 00000010

无符号右移 >>> 向右移动,高位补0

相关推荐
承渊政道11 小时前
Linux网络学习【从深入理解网络层原理到IP分片与重组全过程剖析】
linux·计算机网络·ubuntu·ip分片与重组
局部有解20 小时前
计算机网络:概论知识点整理
计算机网络
KobeSacre1 天前
计算机网络概览
网络·计算机网络
流浪0012 天前
计算机网络篇8:传输层——序列化与反序列化,TCP 面向字节流的报文边界由应用层自己切
网络协议·tcp/ip·计算机网络·1024程序员节·序列化反序列化·面向字节流·面向数据包
lazy H2 天前
【计算机网络】第 5 篇:TCP 和 UDP 有什么区别?从 Java 后端场景理解两种传输协议
经验分享·后端·网络协议·tcp/ip·计算机网络·1024程序员节
2501_915106323 天前
跨平台抓包工具怎么选?TraceEagle抓包鹰 的四种跨平台能力
网络协议·计算机网络·网络安全·ios·adb·https·udp
流浪0013 天前
计算机网络篇7:传输层——TCP 网络编程常用接口与调用流程
网络协议·tcp/ip·计算机网络·listen·tcp接口
sbjdhjd4 天前
从 VLAN 到 MSTP 的交换网络入门
网络·计算机网络·mac·ip·stp·vlan·交换机
坐看风云变幻4 天前
《系统架构师成长之路》第 3 期|计算机网络:TCP 三次握手与可靠传输
tcp/ip·计算机网络·系统架构