原码、反码、补码

原码反码补码的概念,以及原码反码的表示形式 本文主要讲解计算机的原码, 反码和补码.的概念,以及原码反码的表示形式,以及原码反码补码之前如何相互转换,还有计算机中数字是怎么样存储的。 阅读详情

基本概念 
  在计算机内部表示二进制数的方法称为数值编码,把一个数及其符号在机器中的表示加以数值化,称为机器数。机器数所代表的数称为数的真值。  表示一个机器数,应考虑以下三个因素: 
  1.机器数的范围
  字长为8位,无符号整数的最大值是(11111111)B=(255)D,此时机器数的范围是0~255。
  字长为16位,无符号整数的最大值是
  (1111111111111111)B=(FFFF)H=(65535)D      此时机器数的范围是0~65535。
  2.机器数的符号
  在算术运算中,数据是有正有负的,将这类数据称为带符号数。
  为了在计算机中正确地表示带符号数,通常规定每个字长的最高位为符号位,并用0表示正数,用1表示负数。
  3.机器数中小数点的位置
  在机器中,小数点的位置通常有两种约定:
  一种规定小数点的位置固定不变,这时的机器数称为“定点数”。
  另一种规定小数点的位置可以浮动,这时的机器数称为“浮点数”。  
  4.原码
  正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。用这样的表示方法得到的就是数的原码。
  【例1】当机器字长为8位二进制数时:
            X=+1011011                   [X]原码=01011011
            Y=+1011011                 [Y]原码=11011011
            [+1]原码=00000001              [-1]原码=10000001
            [+127]原码=01111111            [-127]原码=11111111
  原码表示的整数范围是:
  -(2n-1-1)~+(2n-1-1),其中n为机器字长。
  则:8位二进制原码表示的整数范围是-127~+127
              16位二进制原码表示的整数范围是-32767~+32767
  5.反码        
  对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。【例2.14】当机器字长为8位二进制数时:
  X=+1011011  [X]原码=01011011   [X]反码=01011011
  Y=-1011011  [Y]原码=11011011   [Y]反码=10100100
   [+1]反码=00000001    [-1]反码=11111110
   [+127]反码=01111111    [-127]反码=10000000
  负数的反码与负数的原码有很大的区别,反码通常用作求补码过程中的中间形式。         反码表示的整数范围与原码相同。
  6.补码
  正数的补码与其原码相同,负数的补码为其反码在最低位加1。

  【例2】(1)X=+1011011  (2) Y=-1011011
  (1)根据定义有:  [X]原码=01011011        [X]补码=01011011
  (2) 根据定义有: [Y]原码=11011011        [Y]反码=10100100  
  [Y]补码=10100101
  补码表示的整数范围是-2n-1~+(2n-1-1),其中n为机器字长。
  则:8位二进制补码表示的整数范围是-128~+127
        16位二进制补码表示的整数范围是-32768~+32767
  当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。
  7.补码与真值之间的转换
  正数补码的真值等于补码的本身;负数补码转换为其真值时,将负数补码按位求反,末位加1,即可得到该负数补码对应的真值的绝对值。

  【例3】[X]补码=01011001B,[X]补码=11011001B,分别求其真值X。
  (1)[X]补码代表的数是正数,其真值:
                                              X=+1011001B
                                                 =+(1×26+1×24+1×23+1×20)
                                                =+(64+16+8+1)
                                                =+(89)D
  (2)[X]补码代表的数是负数,则真值:
                                              X=-([1011001]求反+1)B
                                                =-(0100110+1)B
                                                =-(0100111)B
                                                =-(1×25+1×22+1×21+1×20)
                                                =-(32+4+2+1)
                                                =-(39)D

Transformer-Based Attention Networks for Continuous Pixel-Wise Prediction 基于Transformer注意力网络连续像素级与估计 Transformer-Based Attention Networks for Continuous Pixel-Wise Prediction 基于Transformer注意力网络的连续的像素级的 阅读详情

相关推荐

inferCNV包安装问题及解决办法

InferCNV是一个由broad研究所开发的,利用单细胞转录组数据分析肿瘤细胞拷贝数变异(CNV)的工具。基本思路是在整个基因组范围内,通过计算肿瘤细胞关于参考的“正常”细胞的相对表达,利用滑窗思想对邻近的基因相对表达,计算拷贝数。 先贴一个官方安装说明: 官方infercnv安装说明 安装infercnv包: if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager:

m0_51042606的博客 6803

微机原理—机器数两大类的运算与表示

微机原理—机器数两大类的运算与表示

weixin_46629697的博客 2930

STM32F103开发实战:如何用CubeMX+CLion调整Flash起始地址(附完整CMake配置)

本文详细介绍了在STM32F103开发中如何使用CubeMX和CLion工具链调整Flash起始地址,包括链接脚本修改、系统文件配置和CMake工程适配。通过实战步骤和完整配置示例,帮助开发者实现固件双备份、OTA升级等高级功能,提升嵌入式开发效率。

5b6n7m8的博客 211

计算机进制、原码、反码、补码、移码相关知识

一:计算机中的数制 二:数制之间的转换

小小本科生 4152

从零开始玩转机械臂:用Matlab+Robotics Toolbox实现四自由度机械臂运动仿真

本文详细介绍了如何利用Matlab及其Robotics Toolbox工具箱,从零开始构建并仿真一个四自由度机械臂。通过D-H参数建模、正向运动学验证、交互式操控以及轨迹规划等实践步骤,帮助初学者在虚拟环境中直观理解机器人运动学核心概念,为后续硬件实现奠定坚实基础。

weixin_29055699的博客 325

突破NER性能瓶颈:BERT与LLM协同的混合架构实践

性能卓越:在多个测试集上,F1分数比单一模型提升5-15%成本可控:相比纯LLM方案,成本降低60%以上易于落地:架构清晰,便于调试和优化这种"专才+通才"的组合思路可以扩展到其他NLP任务中,如关系抽取、事件提取、文本分类等。更精细的流水线优化多模型投票机制在线学习与自适应调整不追求单一模型的万能,而是通过精心设计的组合,让每个组件发挥其独特优势,最终实现系统性能的最优化。欢迎在评论区分享你在NER任务中的实践经验,或者对这个混合架构的改进建议!

Ven%的博客 1022

16进制形式的字符串 转 16进制格式整数 源码 函数

/* 例如:“7F” 转成 整数0x7F */ #include <stdio.h> void AsciiToHex(char *str, unsigned char size, unsigned char *result) { unsigned char temp; for(*result = 0; size; size--, str++) { if(('9' >= *str) && (*str >='0') ) temp = *str - '0'; else

302

ubuntu安装英伟达显卡驱动后wifi消失解决方法

ubuntu安装英伟达显卡驱动后(比如4090和3090等),会把wifi和蓝牙驱动去除,导致wifi无法连接。需要重新下载驱动安装。

人工智能(AI)技术,大模型技术,深度学习,机器学习,计算机视觉,AI工具实践应用等分享 3904

C语言学习|原码反码补码和位的操作符

原码反码补码和位操作符的讲解

DADONGOOO的博客 1788

CenterPoint 工程复现

CenterPoint 工程复现,本文中使用版本:BEVerse工程下的mmdet3d (`MMDet3d v0.17.3`)版本,MMDetection3D中其他版本的使用`大同小异`。

Darchan的博客 5663

16位有符号

1. 16位有符号 补码最大的数为0111 1111 1111 1111,其原码跟他一样(正数原码补码相同),最小的数为1000 0000 0000 0000; 其范围是-(2^15)~(2^15-1),即-32768~32767 补码 1 0x0001 0b00000000000000

清风晓月的专栏 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

原码, 反码, 补码 详解

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

weixin_45839498的博客 2859

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

认识原码反码补码

原反补码

2202_75357702的博客 1735

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

原码、反码、补码的关系

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

宸宸的博客 3万+

原码、补码、反码的关系

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

leo187的博客 1万+

原码、反码及补码

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

KEEP CODING 5203

原码 反码 补码

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

weixin_41043617的博客 1177

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

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

qq_38236355的博客 5705

原码、反码、补码及用途

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

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

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

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

VICTOR_fusheng的博客 5635

原码 补码 反码

1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补 就是-128. 但是注意因为实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示.(对-128的补码表示[1000 0000]补算出来的原码是[0000 0000]原, 这是不正确的)使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低数. 这就是为什么8位二进制, 使用原码或反码表示的范围为[-127, +127], 而使用补码表示的范围为[-128, 127].

m0_47505062的博客 1137
上一篇: JDK中的动态代理之二
下一篇: JAVA注释详解
lhminjava
博客等级 码龄21年 15粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值