08 2013 档案

摘要:读《深入理解计算机系统》 第二章 信息的表示与处理检查2个无符号数相加是否溢出1 bool checkUAddOverflow(unsigned int x,unsigned int y)2 {3 return x+y 0; 5 bool pos = x>=0 && y>= 0 && sum 0 && sum > 0; 5 bool pos = x>=0 && y0) && (x-y > 0 == x<0); //x==0要和y<0在一组13 }检查2个整数相乘是否溢出 1 阅读全文
posted @ 2013-08-30 20:42 _pop 阅读(545) 评论(0) 推荐(0)
摘要:读《深入理解计算机系统》第二章 信息的表示与处理无符号数的编码就是简单的二进制编码,有符号数采用补码。补码:0001 = -23*0 + 22*0 + 21*0 + 20*1 = 11111 = -23*1 + 22*1 + 21*1 + 20*1 = -1最高有效位(符号位)的权重是-2w-1,其中w是二进制长度补码的非:数字x的补码的非就是其加法逆元,即-x;其二进制表示为取反后再加1,即~x+1;计算机用加上逆元的方式来执行减法运算,底层并没有减法。有符号与无符号数的运算:有符号与无符号是编程语言层面的事情,是对二进制串的人为解读。底层CPU把一切都当作补码,用统一的规则进行运算,符号类 阅读全文
posted @ 2013-08-10 16:40 _pop 阅读(1354) 评论(0) 推荐(0)