原码、反码、补码

原码,反码,补码.

我们已经知道计算机中,所有数据最终都是使用二进制数表达。

我们也已经学会如何将一个10进制数如何转换为二进制数。

不过,我们仍然没有学习一个负数如何用二进制表达。

 

比如,假设有一 int 类型的数,值为5,那么,我们知道它在计算机中表示为:

00000000 00000000 00000000 00000101

5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。

现在想知道,-5在计算机中如何表示?

 

在计算机中,负数以其正值的补码形式表达。

什么叫补码呢?这得从原码,反码说起。

 

原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

比如 00000000 00000000 00000000 00000101 是 5的 原码。

 

反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。

取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)

比如:将00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。

称:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码。

反码是相互的,所以也可称:

11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互为反码。

 

补码:反码加1称为补码。

也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。

比如:00000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。

那么,补码为:

11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011

 

所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。

 

再举一例,我们来看整数-1在计算机中如何表示。

假设这也是一个int类型,那么:

 

1、先取1的原码:00000000 00000000 00000000 00000001

2、得反码: 11111111 11111111 11111111 11111110

3、得补码: 11111111 11111111 11111111 11111111

 

可见,-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF。

 

一切都是纸上说的……说-1在计算机里表达为0xFFFFFF,我能不能亲眼看一看呢?当然可以。利用C++ Builder的调试功能,我们可以看到每个变量的16进制值。
原码反码补码的概念,以及原码反码的表示形式 本文主要讲解计算机的原码, 反码和补码.的概念,以及原码反码的表示形式,以及原码反码补码之前如何相互转换,还有计算机中数字是怎么样存储的。 阅读详情

相关推荐

KNX实战—ETS5_智能开关从零到一的配置全流程

本文详细介绍了使用ETS5软件配置KNX智能开关的完整流程。从创建项目、构建建筑结构,到导入产品数据库、添加并配置开关模块与智能面板,再到设置延时开关、闪烁报警等进阶功能,并深入解析了群组地址的配置与链接方法。最后指导完成项目校验与程序下载,帮助用户实现从零到一的智能灯光基础控制功能配置。

joy55的博客 540

-1的二进制

关于负数的二进制问题 负数我们用的是正数的补码 比如1 是0000 0001 而-1则为1111 1111 2 0000 0010 -2 1111 1110

qq_41174677的博客 3万+

STM32H743+YT8512C以太网通信实战:CubeMX与LWIP配置详解

本文详细解析了基于STM32H743微控制器与YT8512C PHY芯片的以太网通信实战方案。通过CubeMX工具进行RMII接口、MPU、时钟树等关键硬件配置,并重点阐述了如何修改LWIP协议栈驱动代码以适配YT8512C芯片,解决了LAN8742驱动不兼容的问题。文章提供了从工程创建、代码适配到调试验证的完整步骤,帮助开发者快速实现稳定可靠的嵌入式网络连接。

weixin_29190573的博客 559

-1 转换成二进制数是多少,负数左移右移。

一. -1 转换成二进制数     32位 11111111 11111111 11111111 11111111     16位 11111111 11111111     8位 11111111     4位 1111     第一步:绝对值化为你需要多少位表示的二进制     第二步:各位取反,0变1,1变0     第三步:最后面加1 二. 负数左移右移 操作数为正数:     ①...

世博的博客 1万+

【论文阅读】2021-(Pidinet)Pixel Difference Networks for Efficient Edge Detection

文章目录摘要1. Introduction 摘要 motivations: 基于CNN的边缘检测的高性能是通过一个大的预训练CNN主干来实现的,该主干占用大量内存和能量。传统边缘检测器(如Canny、Sobel和LBP)很少被研究。 contributions: 提出了一种简单、轻量级但有效的架构,称为像素差分网络(PiDiNet),用于有效的边缘检测。PiDiNet采用了新颖的像素差卷积,将传统的边缘检测算子集成到现代CNN中流行的卷积运算中,以增强任务性能。 experiments: 在BSDS500

轻舟的万重重山 1万+

BitLocker恢复密钥丢失?从原理到实战的完整解锁与系统重生指南

磁盘加密技术是数据安全的核心防线,它通过对存储设备上的数据进行编码,确保未经授权的用户无法访问。其原理主要基于加密算法(如AES)与密钥管理机制,在操作系统启动前或数据读写时进行实时加解密。这项技术的核心价值在于防止设备丢失或被盗后的数据泄露,尤其对于笔记本电脑和移动设备至关重要。典型的应用场景包括企业办公电脑、存有敏感信息的个人设备以及符合合规性要求的行业。当使用Windows系统自带的BitLocker加密功能时,若因硬件改动、系统更新等触发保护机制,用户可能会面临需要输入恢复密钥才能启动的困境。本文聚

weixin_34006965的博客 489

-1的二进制为1111 1111

-1的二进制为1111 1111

白丝巾的博客 4900

直流耦合系统介绍

参考《SMA如何使用直流耦合技术实现更高效的光伏电站-白皮书》

圆桌骑士的博客 731

原码, 反码, 补码 详解

原码, 反码, 补码 详解 本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1、机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的

weixin_45839498的博客 2859

AUTOSAR知识点 之 XCP (二):XCP基础概念

学习XCP的过程中,对XCP的基本概念要做一个全面的认知,因为里面有很多缩写以及难以理解的点,假设对此模模糊糊一知半解,那么对整个协议栈的认知会遇到极大的障碍。XCP的信号流传输图示如下XCP 标准主要分为 5 个部分:这部分提供了对于协议的一个概况介绍,包括 XCP 的功能和基础性内容。这部分内容对协议层进行了详细的规范和说明。

梦想技术家 2769

Hermes Agent 安装部署完全指南

Hermes Agent安装部署指南提供了两种安装方式:一键脚本安装和手动分步安装。该AI助手支持多平台运行(Linux/macOS/WSL2),核心功能仅需Git作为前置依赖,其他依赖如Python、Node.js等均由安装脚本自动处理。文档详细介绍了系统要求、依赖管理、配置目录结构、环境变量设置以及10个手动安装步骤,并提供了功能模块化选项,用户可根据需求选择安装语音交互、浏览器自动化等扩展功能。安装完成后可通过hermes doctor命令验证环境,并通过交互式向导完成初始化配置。

简简单单Onlinezuozuo 2618

认识原码反码补码

原反补码

2202_75357702的博客 1732

2026年CSP-J初赛真题及答案解析

2026年CSP-J初赛真题及题解

王老师青少年编程 1617

原码、反码、补码的关系

在了解原码、反码和补码前需要先了解机器数和真值。 一、机器数和真值 1、机器数 一个数在计算机中的二进制表现形式称为这个数的机器数。在机器数中,一个数的最高位是符号位。例如:十进制中的 5 转为机器数就是 0000 0101,-5转为机器数就是 1000 0101。 2、真值 因为最高位是符号位,所以一个数的机器数并不能代表他的真值。例如1000 0101的最高位1代表负值,其真正的数值是-5,而...

宸宸的博客 3万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

原码、补码、反码的关系

一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1、机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。 那么,这里的 00000011 和 10000011 就是机器数。 2、真值 因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如.

leo187的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

原码、反码及补码

任何存储于计算机中的数据,其本质都是以二进制码存储。计算机的运算器只有加法运算器。所以在计算机中没办法直接做减法。 从硬件的角度来说正数+正数、负数+负数都是可以通过加法器直接相加,只有正数加负数才算是减法。原码、反码及补码的产生过程就是为了解决计算机做减法和引入符号位的问题。

KEEP CODING 5200

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

原码 反码 补码

计算机基础知识学习之原码 反码 补码

weixin_41043617的博客 1177

原码、反码、补码及用途

原码、反码、补码及用途 反码(Ones' Complement) 概念: 反码是通过对原码的数值部分逐位取反(0变1,1变0)得到的。 正数的反码和原码相同。 负数的反码是其原码除符号位外所有位取反。 补码(Two's Complement) 概念: 补码是反码加1得到的。 正数的补码和原码相同。 负数的补码是其反码加1。

热土程序园,利他愉己~ 2259

原码、反码、补码的相互转换

首先,正数的原码,反码,补码都是相同的。 所以,这里讨论负数的原码,反码,补码的相互转化问题。 1、负数原码和反码的相互转化 负数原码转化为反码:符号位不变,数值位按位取反。 如: 原码 1100 0010 反码 1011 1101 负数反码转化为原码:符号位不变,数值位按位取反。 如: 反码 1011 1101 原码 1100 0010 2、负数反码和补码的相互转化 负数反码转化为补码:末尾...

qq_38236355的博客 5705

原码、补码和反码之间的转换

在开始之前首先明确3个概念: 1、正数的原码、补码和反码都是一样的。 2、计算机中是用补码来表示数字的二进制的。 3、二进制的最高位(第一位)是符号位,0表示正数,1表示负数。 下面以一些简单的例子来介绍原码、反码和补码。采用8位二进制来进行说明即:0000 0000; 原码 [12]原 = 0000 1100, ...

VICTOR_fusheng的博客 5633
上一篇: 定点数与浮点数
下一篇: 多线程--几种常用的编程模型
shellfj
博客等级 码龄23年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值