原码、补码其实很简单
来源:互联网 发布:佳能wifi软件app 编辑:程序博客网 时间:2024/06/09 21:01
算术运算中的数值都带有符号以表示正负
计算机中用0表示正,用1表示负
原来带有“+”、 “-”号的数据表示为真值
真值:x= +1011 y=-1011
机器数: x= 01011 y=11011
原码
二进制真值X的原码编码方法(n位)
对最高位对符号部分进行编码
用0表示’+’ ,用1表示’-’
剩下的(n-1)位对数字部分进行编码
编码与X的数字相同
如果X的数字不足(n-1)位,则高位补0,补足至(n-1)位
0原码有2个
+0 :0000..0
-0 :1000..0
假设用8位的原码表示
优点
简单直观,容易理解
缺点
做加法和剑法运算较为复杂,要对符号位和数值的绝对值大小进行判断
原码转补码
符号部分同原码
数的最高位为符号位,0表示证书,1表示为负数
数字部分与它的符号位相关
对于正数,补码数字部分和原码数字部分相同 对于负数,补码数字部分是讲原码数字部分按位取反在加1
8位
补码转原码
数字位取反+1(符号位除外)(针对于负数)
例如
补码11110010转原码 数字位按位取反+1
符号位不变
1 1110010 取反 等于= 0001101 在加1
= 0001110 (次数得到原码的数字位)
//最终结果 把符号位加上
10001110 就是他的原码了
补码
性质:补码表示法可以建华加法运算,并且可以将减法变成加法
补码的运算
补码运算
符号位也参加运算
不用考虑符号位的进位问题
解释:因为R位 位模式的符号位产生进位的话,也就是超过R位了.这时候。我们以后没有位置来存放,进位的数了.所以可以直接丢弃,并不影响结果
乘法
乘法其实,可以也是加法
事实上指的都是被乘数的移位和相加
除法
拓展
3位位模式 2^3 =8
对于n位- 位模式来而言
他表示最小的数为:-2^(n-1),最大的数 +2^(n-1) -1
+起来是 2^n次方
0 0
- 原码、补码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- 原码、反码、补码和移码其实很简单
- Android StringUtils-字符串相关工具类
- 最长回文子串
- BZOJ 2763 [JLOI2011]飞行路线
- SIFT和surf
- JQuery Date时间操作
- 原码、补码其实很简单
- 嵌入式系统基础知识及常用接口终结
- [LeetCode] 104. Maximum Depth of Binary Tree
- lcd fb参数
- 洛谷 P1134 阶乘问题
- BZOJ 2151 种树
- npp主题切换
- java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener错误解决方案
- ubuntu16.04 安装apache2报错 解决方案