比较两个数的大小


写一个比较函数比较哪个大:

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





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值