计算器原码、反码和补码和位移的一些总结

计算器原码、反码和补码和位移的一些总结计算器原码 反码和补码的一些基础知识 来自百度百科的一些概念解释 在计算机系统中 数值一律用补码来表示和存储 原码一般是针对用户而言 补码是针对计算机的具体存储来使用 转换关系 1 正整数 负整数 转换如何转换为补码 a 正整数的补码是其二进制表示 与原码相同 例 1 9 的补码是 00001001 备注 这个 9 的补码是用 8 位 2 进制来表示的 补码表示方式很多 还有 16 位二

计算器原码、反码和补码的一些基础知识:

来自百度百科的一些概念解释:

在计算机系统中,数值一律用补码来表示和存储;

原码一般是针对用户而言,补码是针对计算机的具体存储来使用。

转换关系:

1、正整数、负整数、转换如何转换为补码

a、正整数的补码是其二进制表示,与原码相同

【例1】+9的补码是00001001。(备注:这个+9的补码是用8位2进制来表示的,补码表示方式很多,还有16位二进制补码表示形式,以及32位二进制补码表示形式,64位进制补码表示形式等。每一种补码表示形式都只能表示有限的数字。)

b、求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1

同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是,然而在16位二进制补码表示中,就是10001。以下都使用8位2进制来表示。

【例2】求-5的补码。

-5对应正数5(00000101)→所有位取反()→加1(),所以-5的补码是,存储到一个字节就是0xFB。

c、0的补码

【例3】数0的补码表示是唯一的。

[+0]补=[+0]反=[+0]原=00000000

[ -0]补=+1=00000000

二、补码 如何转化为原码

已知一个数的补码,求原码的操作其实就是对该补码再求补码:
⑴如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
⑵如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
解释:

补码这个编码方案要解决的是如何在机器中表示负数,其本质意义为用一个正数来表示这个正数对应的负数。所谓-20的补码是指:如何在机器中用补码形式表示-20。具体过程是这样的:将20的二进制形式直接写出00010100,然后所有位取反变成,再加1变成了。最简单的补码转换方式,不必去理会转换过程中的符号位,只关注转换前和最终转换后的符号位就行了。
那么对求出其补码又具有什么现实含义呢?对一个数求补,逻辑过程是对这个数的所有的二进制位按位取反再加1。现实含义是求出这个数对应的负数形式。对求补就是求出这个数对应的负数的形式,直接操作下,先所有位取反00010011,再加上1就成了00010100。对求出其补码的含义:按照现行补码码制表示的有符号数是-20,对于-20求补就是求出其对应的负数-(-20),现实中-(-20)是+20,那么求补运算的结果符合现实情况吗,00010100转换成有符号数正是+20,这就说明了补码自身逻辑意义是完整的,是不会自相矛盾的。

【例4】已知一个补码为,则原码是(-7)。
因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。
其余七位取反后为0000110;
再加1,所以是。
位移的一些基础知识:






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178991.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午4:04
下一篇 2026年3月26日 下午4:04


相关推荐

  • vscode自动补全函数跳转

    vscode自动补全函数跳转vscode 目录下 c cpp properties json 文件 configuratio 里 includePath 设置 configuratio name Linux includePath workspaceFol defines com

    2026年3月17日
    2
  • 使用自己的x3数据集实现SRGAN,小白进坑全收录!

    使用自己的x3数据集实现SRGAN,小白进坑全收录!本文所使用的代码为 https github com open mmlab mmsr 所使用的环境为 python3 6 8 CUDA9 0 176 cuDNN7 6 1 查看 cuda 和 cuDNN 版本的代码如下 查看 cuda 版本 cat usr local cuda version txt 查看 cuDNN 版本 cat usr local cuda include cudn

    2026年3月17日
    2
  • eigen库使用_eigen3

    eigen库使用_eigen3Eigen库的安装1.VisualStudio2017安装eigen库1.1下载eigen库1.2配置1.3运行测试1.VisualStudio2017安装eigen库1.1下载eigen库eigen官网下载地址找到自己需要的版本下载,我下载的是3.3.9,箭头指向的zip。解压缩得到文件eigen-3.3.9,放到自己想放置的路径下(后面会引用此处的路径)。1.2配置在VS2017中新建一个空项目,取名为“eigen_demo”。输入以下测试

    2022年10月19日
    5
  • java 用户态_深入理解内核态和用户态

    java 用户态_深入理解内核态和用户态1.内核态和用户态、内核线程和用户线程等解释操作系统调度CPU的最小单元是线程,也叫轻量级进程(LightWeightProcess),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换,让使用者感觉到这些线程在同时执行。系统的用户空间和内核空间:虚拟内存被操作系统划分成两块:内核空间和用户空间,内核空间是内…

    2025年12月12日
    5
  • ml-agent学习笔记(二),unity建立新场景训练个人AI的基础代码操作

    ml-agent学习笔记(二),unity建立新场景训练个人AI的基础代码操作

    2026年3月16日
    2
  • 基于ZigBee的工业废气监测系统

    基于ZigBee的工业废气监测系统摘要本文主要对工业现场中排放的工业废气浓度进行检测。并根据国内外气体监测技术的发展现状,提出了基于ZigBee的工业废气监测系统的设计方案。本系统主要由单片机、气体浓度检测模块、模数转换模块、显示模块、按键、蜂鸣器和无线通信模块等组成。本文首先介绍了工业废气检测系统的研究背景意义,同时结合国内外气体检测技术的发展现状,提出了基于ZigBee的工业废气监测…

    2022年4月14日
    63

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号