1、使用下面的代码将最右边的1改变为0,假如没有1则结果为0(e.g.,01011000=>01010000):
x & (x-1)
此代码可以用来判断一个无符号的整数是否为2的幂,假如x & (x-1)==1,则x为2的幂,否则x不为2的幂
2、相似地,下面的代码可以用来判断一个无符号的整数是否具备2n-1的格式(包括n=0、1)
x & (x+1)
3、下面的代码将隔离最右边的1,假如右边没有1则结果返回0 (e.g., 01011000 =>00001000):
x & (-x)
4、下面的代码将隔离最右边的0,假如右边没有0则结果返回0 (e.g., 10100111 =>00001000):
~x & (x+1)
5、下面的代码都可以用来产生一个掩码,用来保留尾部的0,假如x=0则返回全1字节 (e.g., 01011000 =>00000111):
~x & (x-1) 或 ~(x | -x) 或 (x & -x)-1
6、下面的代码用来产生一个掩码,用来保留最右边的1与尾部所有的0,假如x=0则返回全1字节(e.g., 01011000 =>00001111):
x ^ (x-1)
7、下面的代码用来将最右边的1右边的0全部改为1,假如x=0则返回全1字节(e.g., 01011000 = >01011111):
x | (x-1)
8、下面的代码将最右边的1临近的1取反 (e.g., 01011000 =>01000000):
((x | (x-1))+1) & x
相关推荐
本资源“C语言常用算法源代码”是学习和理解C语言算法应用的宝贵资料,它包含了多个常见算法的实现,对于提升编程技能和解决实际问题具有很大帮助。 1. **排序算法**:排序是计算机科学中最基本的问题之一。C语言中...
c语言基础 C语言包含的数据类型广泛,不仅...C语言中的运算符包含以下几个类型:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。
本资源包"**C语言常用加密算法.rar**"可能包含了多个C语言实现的经典加密算法源代码,帮助开发者深入理解和应用这些算法。 首先,我们来看看几种常见的加密算法: 1. **DES(Data Encryption Standard)数据加密...
### C语言常用语法提要详解 #### 一、标识符 在C语言中,标识符是用来命名各种元素的重要组成部分,比如变量名、函数名、数组名等。根据C语言的标准规定,标识符由以下几部分构成: - **组成成分**:标识符可以由...
除了这些基础算法,光盘可能还包含了其他高级主题,如字符串处理、位操作、栈和队列等数据结构的实现,以及树和图的遍历算法。通过阅读和分析这些源代码,开发者不仅可以深化对C语言的理解,还能提高算法设计和调试...
以下是对C语言常用算法的详细总结: 一、最大值、最小值问题 在C语言中,寻找数组中的最大值和最小值可以通过遍历数组并使用比较操作实现。通常,我们可以初始化一个变量作为当前的最大或最小值,然后逐个与数组...
1. **输入/输出(I/O)操作**:51单片机的端口可以直接用于数据的输入和输出,C语言中通过定义bit位变量来控制单片机的IO口。例如,`#define LED P1_0` 定义LED连接到P1口的第0位,然后通过`LED = 1;`或`LED = 0;`来...
本资料"**C语言常用算法归纳.pdf**"集中介绍了C语言中的基础算法,涵盖了非数值计算和数值计算等多个方面,适合C语言入门者学习。 一、基本算法 1. **交换**:在C语言中,交换两个变量的值通常需要借助第三个变量...
C语言中有三种常用的循环结构: 1. **`while`循环**: ```c while (循环条件) { // 循环体 } ``` 2. **`do-while`循环**: ```c do { // 循环体 } while (循环条件); ``` `do-while`循环至少会执行一次...
"C语言常用算法源代码"这个压缩包中,很可能包含了各种经典算法的实现,这对于理解和掌握算法有着极大的帮助。以下是一些可能包含在这些源代码中的关键知识点: 1. **排序算法**:如快速排序(Quick Sort)、归并...
2. **C语言基础**:讲解C语言的基本语法,如变量、数据类型、运算符、流程控制语句等,以及针对单片机的特殊考虑,如位操作和内存管理。 3. **输入/输出(I/O)接口**:讲解如何配置和使用msp430的GPIO端口进行数字...
C语言是一种基础且强大的编程语言,它以其高效、灵活和跨平台性被广泛应用于系统编程、软件开发、设备驱动等领域。...以上就是C语言常用模块的基本概述,通过深入学习这些模块,你将能够熟练地运用C语言进行程序设计。
8. **位操作**:C语言提供了直接操作二进制位的能力,这在优化代码、节省内存空间、实现高效计算等方面具有巨大潜力。 9. **数据结构设计**:集合、映射、优先队列等抽象数据类型在C语言中可以通过自定义结构体实现...
C语言作为一门经典的编程语言,其强大的底层操作能力和简洁的语法结构使其在算法实现方面具有得天独厚的优势。算法作为程序设计的灵魂,是解决各类编程问题的核心。掌握一些基本的算法不仅可以帮助我们更好地理解...
这份“C语言常用术语.pdf”文档很可能会涵盖以上提到的诸多概念,并可能包含更多的术语和详细解释,如类型转换、位运算、文件操作等。通过深入学习和实践这些术语,你可以逐步掌握C语言的精髓,成为一名熟练的C语言...
这份“c语言常用函数手册”正是为了解决这一问题,它收集了数百个C语言中经常使用的函数,旨在为使用者提供一个方便的参考工具。 1. **标准库函数**:C语言的标准库提供了大量的内置函数,如输入输出函数`printf`和...
C语言基础编程题 ...条件运算符是一种常用的C语言语句,用于判断一个条件是否成立,如果成立则执行某个操作,否则执行另一个操作。我们可以使用条件运算符的嵌套来完成某些特定的运算,例如根据成绩来判定等级。
C语言是一种强大的、低...以上只是C语言常用语句的一部分,实际的PDF文件可能还会涵盖错误处理、文件操作、位运算等更深入的主题。学习C语言需要理解其底层机制,熟练掌握这些基本语句,才能编写出高效、可靠的程序。