第三天0708

本文深入探讨了位运算在编程中的应用,包括如何快速设置和清除无符号数的特定位,将十进制数转换为十六进制数的方法,以及在不使用额外变量的情况下交换两个变量值的技巧。此外,还解析了复杂的运算符优先级和条件表达式的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int main()

{

    int a = 1, b = 1, c = 0, d = 0;

    c++ || a && b || d++;

}

则 a = 1, b = 1, c = 1, d = 0

{怎么把一个无符号数的某位快速置0

 例如:把a的第三位置1

 a || (1<<2)即用a和1左移2位相或

怎么把一个无符号数的某一位快速置0

    例如:把 b的第四位置0

    a & ~ (1<<3)即用a和1左移3位的反相与

怎么利用位运算把一个十进制数转化成一个十六进制数?

 例如:503  503 &0xffff     f的个数取决于数值的大小 }

 

{不引用新变量,互换变量值

 例如: a = 5   b = 7  a ^= b;  b ^= b;  a ^= b; }

 

运算符优先级

x += y == z, y = x + 2, z = x + y + z > 0;

算出 x = 2, y = 4, z = 1

int a = 1, b = 1, c = 0, d = 0;

则 a||c++ && b++ || ++d; printf("%d %d %d\n", b, c, d);

打印结果为:1 0 0
若有(a||c++) && (b++ || ++d);

printf("%d %d %d\n", b, c, d);

打印结果为:2 0 0
--a||c++ && b++ || ++d;

printf("%d %d %d\n", b, c, d);

结果为:1 1 1

转载于:https://www.cnblogs.com/doublecheng/p/11154856.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值