您的位置:首页 > 其它

比较两个数的大小

2016-03-16 21:54 176 查看
写一个比较函数比较哪个大:

void wholarge(int a,int b)

{

int c=a-b;

if((unsigned)c>>(sizeof(int)*8-1)==0) (1)

{

cout<<"a larger"<<endl;

}else

{

cout<<"b larger"<<endl;

}

}

(1) : 先把a b 两个数的差进行强制转换成无符号数,因为无符号数右移必须是逻辑右移,

(逻辑右移是左边补0,算术右移最高位是1,则补1, 是0 则补0)

关于移位问题:

有符号数:左移是逻辑移位,右移(这个不是一定的但大多数都是这么来的)是算术移位。

无符号数:左移右移都是逻辑移位。

还有一点是关于整数在计算机中的是以什么方式来存储的,负数是以补码的形式来存的。

比如: -1 的存储形式是111111。。。。。1111111 的形式来存的

如果用无符号数的观点(方式)来看的话这个数就是int (无符号)类型的最大数4294967295
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: