反码 原码 补码

news/2025/9/23 23:35:08/文章来源:https://www.cnblogs.com/henwenhe/p/19108364

一、核心概念:原码、反码、补码(以 8 位二进制为例)

三者均针对“带符号数”(最高位为符号位:0 表示正数,1 表示负数),仅负数的编码规则不同,正数的原/反/补码完全一致。
编码类型 正数(以 +3 为例) 负数(以 -3 为例) 规则说明
原码 0000 0011 1000 0011 符号位 + 数值的绝对值二进制
反码 0000 0011 1111 1100 正数不变;负数符号位不变,数值位按位取反
补码 0000 0011 1111 1101 正数不变;负数 = 反码 + 1(解决原码“正负相加不为0”的问题)

二、Java 验证程序:通过位运算观察补码特性
通过 Integer.toBinaryString() 可获取整数的 32 位补码(高位省略前导 0,负数显示完整符号位),结合位运算验证补码规则。
public class BinaryCodeTest {
public static void main(String[] args) {
// 1. 验证正数:原/反/补码一致
int positive = 3;
System.out.println("1. 正数 +3 的验证:");
System.out.println("十进制值:" + positive);
// toBinaryString 输出补码,正数无符号位问题,直接对应数值
System.out.println("32位补码(省略前导0):" + Integer.toBinaryString(positive)); // 输出 11
System.out.println("------------------------");

    // 2. 验证负数:补码 = 反码 + 1(通过“负数 = 正数按位取反 + 1”验证)int negative = -3;System.out.println("2. 负数 -3 的验证:");System.out.println("十进制值:" + negative);System.out.println("32位补码:" + Integer.toBinaryString(negative)); // 输出 11111111111111111111111111111101(32位,符号位1,数值位为补码)// 验证补码规则:-3 = ~3 + 1(~为按位取反,正数取反后为负数的反码)int notPositive = ~positive; // ~3 = -4(二进制:11111111111111111111111111111100,即-3的反码)int negativeFromComplement = notPositive + 1; // 反码 +1 = 补码,结果为 -3System.out.println("验证:~3(反码) = " + notPositive); // 输出 -4System.out.println("验证:~3 + 1(补码) = " + negativeFromComplement); // 输出 -3System.out.println("------------------------");// 3. 验证补码的核心优势:正负相加为 0(解决原码的缺陷)int sum = positive + negative;System.out.println("3. 补码优势验证:");System.out.println("3 + (-3) = " + sum); // 输出 0(若用原码计算会得到 10000010,即-2,显然错误)System.out.println("0 的32位补码:" + Integer.toBinaryString(sum)); // 输出 0
}

}
三、运行结果与结论

1.	正数(如 +3)的二进制输出为 11,与原/反/补码一致,无符号位冲突。2.	负数(如 -3)的二进制输出为 32 位的 11111111111111111111111111111101,完全符合“补码 = 反码 + 1”的规则。3.	正负相加(3 + (-3))结果为 0,验证了补码解决“原码运算错误”的核心作用。

综上,Java 中整数的存储和运算均基于补码,这是计算机解决负数运算问题的标准方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.net网站c asp.net 发布网站

题目描述 计算公式:1-1/21/3-1/4……,求前面n(n≤10000)项和,结果保留小数点后面6位。 例如当n4时,和值为0.583333 当n10时,和值为0.645635 输入格式 一个正整数n 输出格式 求出的和值,保留小数点后面6位 …

上海轨道交通建设查询网站阳江房产网58同城网

文章目录 1、文件包含概述1.1 文件包含语句1.1.1、相关配置 1.2、动态包含1.2.1、示例代码1.2.2、本地文件包含1.2.3、远程文件包含 1.3、漏洞原理1.3.1、特点 2、文件包含攻防2.1、利用方法2.1.1、包含图片木马2.1.2、读取敏感文件2.1.3、读取PHP文件源码2.1.4、执行PHP命令2.…

网站建设犀牛云pageadmin是免费的吗

maven依赖关系中Scope的作用 Dependency Scope 在POM 4中&#xff0c;<dependency>中还引入了<scope>&#xff0c;它主要管理依赖的部署。目前<scope>可以使用5个值&#xff1a; * compile&#xff0c;缺省值&#xff0c;适用于所有阶段&#xff0c;会…

沈阳微信网站建设网站建设销售方面会遇到的问题

数据存储量比较大时&#xff0c;我就需要将数据存储在数据库中方便使用&#xff0c;尤其是制作管理系统时&#xff0c;它的用处就更大了。 在编写程序前&#xff0c;需要在Assets文件夹中创建plugins文件&#xff0c;将.dll文件导入&#xff0c;文件从百度网盘自取&#xff1a;…

营口pc网站开发青海住房建设网站

在Java语言中&#xff0c;类的访问修饰符决定了其它类能够访问该类的方式。类有如下4种访问修饰符&#xff0c;在创建类时用于类的声明&#xff1a; 1、public: 当一个类被声明为public时&#xff0c;它可以从任何其他类中被访问&#xff0c;无论这些类位于哪个包中。通常&am…

joomla 网站 html 空免费外贸自建网站

Spring Boot Starter 是 Spring Boot 框架为了简化项目的初始化和配置工作而设计的一种模块化依赖管理方式。它主要具有以下几个关键功能和使用场景&#xff1a; 功能&#xff1a; 1. 依赖管理每个 Starter 都是一组相关的依赖项集合&#xff0c;这些依赖项都是为了实现特定功能…

网站建设步骤ppt基层网站建设存在困难

目录: Nginx的优势 HTTP协议详解 Nginx部署-Yum Nginx配置文件 Nginx编译参数 Nginx基本配置 Nginx日志Log Nginx WEB模块 Nginx 访问限制 Nginx 访问控制 Nginx的优势 Nginx (engine x) 是一个高性能的HTTP(解决C10k的问题)和反向代理服务器&#xff0c;也是一个IM…

移动端网站设计尺寸南宁制作企业服装

目录 1. 使用自定义Favicon 2. 在vue中设置Favicon 3. 使用Vue插件设置Favicon 网页显示的小图标&#xff0c;通常称为Favicon&#xff08;Favorites Icon&#xff09;&#xff0c;是网站的标识之一&#xff0c;也是浏览器标签页上显示的图标。 1. 使用自定义Favicon 准备图…

线性结构常见应用之栈[基于郝斌课程]

栈的定义:一种可以实现“先进后出”的存储结构栈类似于箱子,先放进去的最后取出来,最后放入的先取出来 栈的分类:静态栈的内核是数组动态栈的内核是链表 栈的算法:出栈压栈 栈的应用:函数调用中断表达式求值内存…

实测对比:权威榜单之公众号排版Top 5(含效果对比与适用建议)

在新媒体运营领域,公众号排版是一项至关重要却又让许多人头疼的工作。写作慢、排版耗时、跨平台排版不统一、配图难/侵权风险等问题,一直困扰着公众号/知乎/小红书运营者、新媒体运营新手小白、自媒体人等众多从业者…

东莞微信网站物联网在生活中的应用

java.io.File.setExecutable(boolean executable) 方法来设置所有者对于此抽象路径名执行权限。 声明 以下是 java.io.File.setExecutable(boolean executable) 方法的声明&#xff1a; public boolean setExecutable(boolean executable) 参数 executable -- 设置访问权限为t…

go的泛型

简单例子,把传入的int类型的数据,打印出来,然后返回前两位数值 func forSclice(slice []int) []int {for i, v := range slice {fmt.Println(i, v)}return slice[:2] }如果该方法,支持任何形式的入参呢? func for…

原码补码反码

原码是最高位为符号位,其余位表示数值的绝对值二进制码,反码是正数与原码相同,负数原码按位取反,补码是正数与原码相同,负数是反码加1。 Java整数类型使用的是二进制补码如就是0000 0000 0000 0000 0000 0000 000…

lc1034-边界着色

难度:中等(中期)题目描述有一个二维地图,值代表颜色。 给定一个点的坐标和一个备用的颜色 这个点周围与它颜色一样的部分认为是一个整体 给这块区域的最外层刷上备用颜色示例 输入:grid = [[1,1],[1,2]], row = 0…

网站是用sql2012做的_在发布时可以改变为2008吗湖南人文科技学院在哪

1.什么是web开发 Web&#xff1a;全球广域网&#xff0c;也称为万维网(www World Wide Web)&#xff0c;能够通过浏览器访问的网站。 所以Web开发说白了&#xff0c;就是开发网站的&#xff0c;例如网站&#xff1a;淘宝&#xff0c;京东等等 2. 网站的工作流程 1.首先我们需…

连江县建设局网站企业做网站要注意些什么

目录 1、环境变量process.env配置2、vue package.json多环境配置vue-cli-service serve其他用法vue-cli-service build其他用法vue-cli-service inspect其他用法3、vue导出webpack配置4、配置打包压缩图片文件5、打包去掉多余css(由于依赖问题暂时未实现)6、打包去除console.…

标志设计logo网站广西壮族自治区成立时间

从事java开发一般都需要使用到一些开发工具&#xff0c;记得以前刚接触java的时候还用过MyEclipse。idea被评为最好用java开发工具&#xff0c;为什么用eclipse的人更多?下面一起来了解下吧&#xff01;IDEA毕竟不便宜啊&#xff0c;很多企业都买不起只能用Eclipse了&#xff…

网站建设技术指标做设计什么兼职网站建设

前面我们介绍了Harris和Shi-Tomasi角点检测算法&#xff0c;这两种算法具有旋转不变性&#xff0c;但不具有尺度不变性&#xff0c;以下图为例&#xff0c;在左侧小图中可以检测到角点&#xff0c;但是图像被放大后&#xff0c;在使用同样的窗口&#xff0c;就检测不到角点了。…

赤水市住房和城乡建设局网站网站建设刷赞和vip

目录 1、源码编译安装nginx 2、分别编写基于RHEL6和RHEL7的脚本。 2.1 RHEL6的nginx系统服务脚本 2.2 RHEL7的nginx系统服务脚本 1、源码编译安装nginx 1.首先关闭防火墙和selinux [rootnode13 ~]# systemctl stop firewalld [rootnode13 ~]# setenforce 0 2.准备环境&…

什么是网站集约化建设wordpress去除右下角

强烈建议别购买京东安美酷便携屏&#xff0c;太脆弱了&#xff0c;一碰就坏&#xff0c;客服态度不行&#xff0c;容易闪屏等等缺点。而且价格偏贵&#xff0c;淘宝上两百块的屏幕足够用了&#xff0c;没必要花六百多块钱&#xff0c;如果就是买来打游戏的话&#xff0c;也用不…