首页 > 其他分享 >CSAPP:整数表示

CSAPP:整数表示

时间:2023-02-05 14:33:22浏览次数:50  
标签:表示 CSAPP 符号 补码 整数 负数 溢出 mod

 

1. 位编码整数有两种方式:一种只能表示非负数,另一种可以表示负数,零,正数。

2. 在表示有符号整数时,负数的可表示范围比正数的范围大于1。这是由于在用位表示时,最高位作为符号位,1表示负数,0表示正数,可表示的负数最小值为,w位的话为-2^(w-1),

 符号位为0时可表示的范围为0~2^w - 1,这里面多了一个0,所以不对称。

3. C与C++都支持有符号和无符号数,JAVA只支持有符号数。

4. 函数的双射是指输入和输出的结果是一致的。

5. 有符号数与无符号数之间的相互转换,将负数转换成无符号数可能得到0,0的补码表示为(8位)0xFF,0XFF对应其无符号数的最大值为255。

6. 补码转为无符号数,负数时需要加上2^w,非负数不变。

7. C语言中一个有符号数与无符号数相加,会隐式的将有符号数转为无符号数,比如-1 < 0 = 1,而 -1 < 0U = 0。

8. 语言中的最小值表示方式为#define INT_MIN -INT_MAX-1

9. 零扩展,将无符号数转为更大数据类型,简单的在头部填0。

10. 补码的扩展,在开头填充符号位。

11.无符号数 数字的截断:结果为 对x取无符号数 x mod 2^k。

12. 补码的截断:对x取无符号数 x mod 2^k 取补码。

13. 无符号数加法溢出时,x+y > 2^w 结果为x + y - 2^w。溢出判断: s = (x+y)mod 2^w s < x时溢出。

14. 补码加法的溢出有两种,一种是正溢出,一种是负溢出。溢出检测:x>0 y>0 s <= 0时正溢出 x < 0 , y < 0 ,s >= 0时正溢出。

15. 补码的非里,TMin的非为本身,这是由于对于w位,Tmin = 2^(w-1) Tmin + Tmin = 2^w发生加法溢出需要减去2^w 结果为0, 因此,为其本身。

16. 乘以常数: 乘法需要10多个时钟周期。除法需要30多个周期,优化形式分为两种A: (x<<n) + (x << (n - 1)) + ... + (x << m) B: ( x<<(n + 1)) - (x << m);

17. 无符号数的除法结果为逻辑右移动加一个向0 舍入。补码除法是算术右移加一个向下舍入。

标签:表示,CSAPP,符号,补码,整数,负数,溢出,mod
From: https://www.cnblogs.com/fourmi/p/17093294.html

相关文章

  • 算法刷题-移除元素、分数到小数、整数转罗马数字
    移除元素给你一个数组nums_和一个值val,你需要原地移除所有数值等于val_的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原......
  • 3.2用二进制数表示小数
      小数点前面部分的转换方法:将各数位数值和位权相乘,然后再将相乘的结果相加即可实现。小数点后面部分的转换方法:将各数位的数值和位权相乘的结果相加。......
  • 数据是用二进制数表示的——2.1 用二进制数表示计算机信息的原因
    在C和Java等高级语言编写的程序中,数值、字符串和图像等信息在计算机内部都是以二进制数值的形式来表现的。也就是说,只要掌握了使用二进制数来表示信息的方法及其运算机制,也......
  • G 阿宁的整数配对【2023牛客寒假算法基础集训营6】
    G 阿宁的整数配对原题连接代码点击查看代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#includ......
  • IEEE 754浮点数表示法
    浮点数的二进制表示在理解二进制浮点数的表示之前,首先先从十进制的浮点数表示开始,十进制的浮点数表示如下\[d_{m}d_{m-1}...d_{1}d_{0}.d_{-1}.d_{-2}...d_{-n}\]每一个......
  • 计算机中负数的表示法
    在数学中我们使用+-来表示正数和负数。在计算机中数据都需要以二进制保存,那么负数如何在计算中用二进制存储呢?计算机中常用的是三种方法:原码、反码、补码。需要强调,......
  • 获取BigDecimal数字的千分位表示,同时保留精度
    获取BigDecimal数字的千分位表示,同时保留精度需求:BigDecimal---->String两种方法:自己编写逻辑方法使用java提供的API来转化/***转化一:自己拼接*/priv......
  • csapp lab1,第六项拆弹工作
    第六项拆弹集合了1-5所有的内容,所以看起来比较复杂,本文只对此进行分析  地址401106将数据按顺序入栈。40117-401121判断输入的第一个数减1是否是无符号<=5的值,因......
  • 求整数的和与均值
    #include<iostream>#include<iomanip>usingnamespacestd;intmain(){intn;cin>>n;intm;intsum;doublex;for(inti=0;i<n;i++){......
  • 《谁有惠根斯原理的电磁场叠加证明?要完整数学证明过程》 回复
    《谁有惠根斯原理的电磁场叠加证明?要完整数学证明过程》     https://tieba.baidu.com/p/8241825902    。  用 麦克斯韦方程 证明啊,  这不......