c 运算符复习

 

例子:
1、用一个表达式,判断一个数X是否是 次方(2,4,6,8,16.....),不可循环语句
解析:2、4、6、8、16这样的数转化成二进制是10、100、1000、10000。如果X减1后与X做运算,答案若是0,则X是2^N次方。
答案!(X&(X-1))

2、请用位运算实现两个整数的加法运算

int Add(int a,int b){
    if(b==0) return a;//没有进位的时候完成运算
    int sum,carry;
    sum =a^b;//完成第一步没有进位的加法运算
    carry=(a&b)<<1;
    return Add(sum,carry);//进行递归相加
}

3、有两个变量a和b,不用if 、?:、switch或其他判断语句,找出两个数中间比较大的。

答案:int max = ((a+b)+abs(a-b))/2

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值