学校网站建设调查问卷,网站建设最好,营销运营推广服务,王也扮演者前言
在上一篇文章中#xff0c;我们介绍了运算符的基础用法#xff0c;本篇文章#xff0c;我们将介绍 运算符的一些高级用法。 一、人物简介
第一位闪亮登场#xff0c;有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序…前言
在上一篇文章中我们介绍了运算符的基础用法本篇文章我们将介绍 运算符的一些高级用法。 一、人物简介
第一位闪亮登场有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 二、位掩码 位掩码是一种用于按位操作的技术 它通过使用一个二进制数掩码来屏蔽或保留目标数中的一些特定位 例如如果要将一个无符号整数的最高位清零可以使用以下代码
#include stdio.hint main()
{ unsigned int x 0xABCD1234; //0b10101011110011010001001000110100x ~(1U 31);printf(x %u\n,x);return 0;
}1U 31 表示将一个无符号整数的最高位设置为 1~(1U 31)取反得到掩码再和原数进行按位与运算就可以将最高位清零 三、判断奇偶性
二进制末尾位奇数1偶数0
一个数的二进制表示中如果最后一位为 1则它是奇数否则它是偶数因此可以使用 运算符来判断一个数的奇偶性例如
#include stdio.h
int main()
{int x 7;if (x 1) {printf(%d 是奇数\n, x);} else {printf(%d 是偶数\n, x);}return 0;
}x 1 将返回 x 的最后一位与 1 的按位与如果结果为 1说明 x 是奇数否则 x 是偶数。 四、判断是否为 2 的幂次方
如果一个数是 2 的幂次方那么它的二进制表示中只有最高位为 1其他位都为 0把这个数减去1那么它的二进制表示中最高位为 0其他位都为1x (x - 1)的结果一定为 0例如判断16 是否是 2 的幂次方
#include stdio.h
int main()
{unsigned int x 16;if (!(x (x - 1))) {printf(%u 是 2 的幂次方\n, x);} else {printf(%u 不是 2 的幂次方\n, x);}return 0;
}小结
通过这篇文章我们学会了用位运算符来做位掩码操作、判断奇偶性、判断一个数是否为2的幂次方。
在下一篇文章中我们将介绍位运算符|的几个高级用法。 欢迎各位 点赞 ⭐收藏 评论如有错误请留言指正非常感谢