整型
移码
定义:移码是补码符号位取反。
移码以unsigned类型,由上到下真值增大。
原反补移码的作用
两正数二进制相加无需变化
一正一负需转化为减法,但硬件设计难以实现,可以通过取模运算(取余)实现。
实例
十点的时钟拨至七点。
在取模12的情况下,-3与+9运算无区别,最终都得到了余数7。
10-3 = 7,10+9 = 19 19/12 = 1.........7,可以认为-3与9在模12的情况下等价。
计算机以整数的补码形式存储就是为了以加法实现加减运算。
移位运算
算数移位
右移时,右移出的位数为0,则有效数字(精度)不变,如果不为0,则会丢失精度。
补位规则满足:右移除以2,左移乘以2
逻辑移位
加减法与溢出
正负整数在计算机内均采用补码的加法运算实现。
溢出判断
原理
方法
乘法为与运算,加法为或运算。
符号扩展
小节
乘法与除法
原码的移位乘法
总结重点
1)数值位运算
2)乘数末尾为0,乘积高位加0后右移(先加后移)乘数末尾为1,乘积高位加被乘数后右移(补0)
3)步骤2)后进行右移(补1)
5)当乘数符号位移动至乘积低位时终止
4)最终补上符号位(异或)
补码的移位除法
略
思路与乘法类似,最终转化为加减交替的方法实现。
C语言中的强制类型转换
数据的存储与排列
大端存储
实例
1101 1001 0001
高位存储在低地址位,低位存储在高地址位。
每次向内存中存储时,按照地址由低到高,先存储高位,再存储低位。(压栈)
每次从内存中取出时,按照地址由低到高,先取出高位,再取出低位。(出栈)
大端存储利于人类阅读,但是每次从低地址都会取出高位,不利于机器计算。
浮点型
此部分可以移步至C语言相关部分,关于浮点数标准的存储。
标签:右移,存储,计算机,高位,补码,day2,移码,原理,运算 From: https://blog.51cto.com/u_15862591/5920116