计算器原码、反码和补码和位移的一些总结计算器原码 反码和补码的一些基础知识 来自百度百科的一些概念解释 在计算机系统中 数值一律用补码来表示和存储 原码一般是针对用户而言 补码是针对计算机的具体存储来使用 转换关系 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