C程序设计语言 笔记

本文详细介绍了位运算符的应用,包括按位与、按位或、按位取反及位移操作,并展示了如何利用这些操作实现特定的功能,例如屏蔽二进制位和获取指定范围内的位值。此外,还探讨了表达式的使用技巧,如三目运算符和自增运算符的顺序问题。

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


第二章 类型符号表达式:


2.9

按位与 & 可用于屏蔽某些二进制位 如:n &= 0177

按位或 | 可以将某些位置1  如:n |= 011

按位取反 可以用于如将后六位置0 : n &= ~077;这样的用法比 n &= 0177700这样的表达式好很多,前者可移植性强。

左移右移的右值不能为负;


return(x>>(p+1-n)) & ~(~0<<n);  返回X中右起p位开始向右的n位数;


2.10

x *= y+1    等价于  x = x * (y+1);

将变量声明为无符号型可以保证右移的时候不论在什么机器上运行都能用0来填补而不是符号位;

2.11

a?b:c    //首先计算a,如果不为0 则计算b并以该值作为条件表达式的值,否则计算c以其为表达式的值。

Z = (a>b) ? a:b  // z = max (a,b)

示例:  每行打印10个元素,每列间用一个空格隔开,每行用一个换行符

for(i = 0;i<n;i++)

printf("%6d%c" , a[i] ,(i%10 == 9 || i == n-1) ? '\n' : ' ');    

2.12

printf("%d %d\n",++n,power(2,n))  // 不同编译器可能有不同的结果

a[i] = i++; //也是取决于编译器的解释,C语言标准并未对这类问题 作具体规定;

  如果代码的执行结果与求值顺序相关,则是不好的程序设计风格;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值