随笔分类 - 2018~2022归档 / CSAPP
摘要:1.无符号数加法 非负整数x,y,满足0<=x,y<2ω,x和y都能表示为ω位的无符号整数。 x+y的范围是[0,2*2ω-2),这就有可能需要ω+1位来表示。 计算机在进行无符号数的加法时,用ω+1位来运算,实际结果是截断此运算结果ω位得到的,即丢弃最高位。 可以分两种情况来看: 1)若x+y的范
阅读全文
摘要:背景:不同字长的整数进行转换,需要在不改变数的大小的前提下将较小的数据类型转为更大的数据类型。 无符号数的扩展:开头加0即可,也叫零扩展。 有符号数(补码)的扩展:开头添符号位。 1 short sx = -12345; 2 unsigned short usx = sx; 3 int x = sx
阅读全文
摘要:C语言在处理无符号数时,将有符号数强制类型转换为无符号数进行运算。 这种行为对一般的算术运算没有影响,比如 1 int a=-10; 2 unsigned b=12; 3 printf("%d\n",a+b); 4 printf("%u\n",a+b); 运行结果 但是对于比较运算符(>,<,==)
阅读全文

浙公网安备 33010602011771号