《深入理解计算机系统》 CMU15213 笔记(三)

第一部分:Bits、Bytes、Integers本部分了解数字的位级表示、操作数字时对数字其他属性的影响、溢出时我们不能做和期望电脑做的事情。笔记1:二进制表示浮点数的核心思想:小数点右边的数。权重依次为2的-1次方、-2次、-3。。。笔记2:对一个非零数运用两次!,会得到1笔记3:左移都是右边补0,右移则分两种,为什么呢?因为底层表示为补码,最高位为1,表示负数,为0表示正数,因此...
摘要由CSDN通过智能技术生成

第一部分:Bits、Bytes、Integers

  • 本部分了解数字的位级表示、操作数字时对数字其他属性的影响、溢出时我们不能做和期望电脑做的事情。

笔记1:二进制表示浮点数的核心思想:小数点右边的数。权重依次为2的-1次方、-2次、-3。。。

笔记2:对一个非零数运用两次!,会得到1

笔记3:左移都是右边补0,右移则分两种,为什么呢?
因为底层表示为补码,最高位为1,表示负数,为0表示正数,因此如果最高位为1,右移也需要补1,才能确保正确除2

笔记4:如果一个单字节数x左移8,将得到0吗?不,是x,因为实际上为模8。只要观察低位的3个bit位移,忽略所有其他位,所以这就像模8一样
(解释:C语言规定移位指令只需要考虑移位量的低 log2(数据类型长度),相当于:实际位移量mod数据类型长度,即8mod8=0 所以这里的实际位移量为零,等于原数X)

1.1 关于整数编码:无符号数和补码

注:B2U的意思是从比特位模式转化成无符号数的编码表示

思想:将加权位求和,每个比特用2的幂来加权
以下为无符号数和二进制补码的公式(当我们看补码的时候,和无符号数唯一的区别就是这种方法可以表示负数和正数):

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值