文档介绍:第一章 C语言概述
第二章数据类型、运算符与表达式
第三章最简单的C程序设计
第四章逻辑运算和判断选取控制
第五章循环控制
第六章数组
第七章函数
第八章编译预处理
第九章指针
第十章结构体与共用体
第十二章文件的基本操作
第十三章位运算
第十三章位运算
§13-1位运算概述
计算机的特点:数据是以二进制数表示的;
机器指令由二进制数组成的。
二进制数:0,1
C语言的特点:具有高级语言和低级语言的功能。
低级语言功能的表现:
调用系统功能的函数;
读写I/O端口的函数;
直接对数据的位或字节进行操作(只限于char型和int型数据)。
调用BIOS中的各中断函数;
本章主要介绍位运算。
C语言中的位操作运算符:
共有6个,分别如下:
1. ~
作用:按位取反
如:a=10011010
则:~a=01100101
2. <<
作用:按位左移
如:a=10011010
则:a<<2=01101000
3. >>
作用:按位右移
如:a=10011010, b=01010011
则:a>>2=11100110 (a为有符号数)
4. &
作用:按位与(1&1=1, 1&0=0, 0&0=0)
如:a=10011010
则:a&b=00010010
b=01010011
b>>2=00010100 (b为无符号数)
5. |
作用:按位或(1|1=1, 1|0=1, 0|0=0)
6. ∧
作用:按位异或(1∧1=0, 1∧0=1, 0∧0=0)
如:a=10011010
则:a∧b=11001001
b=01010011
如:a=10011010
则:a|b=11011011
b=01010011
§13-2. 位运算符的使用方法
位运算符分为两类:
1. 只有一个变量参与运算: ~, <<, >>
2. 有两个变量参与运算: &, |, ∧
位运算时,通常采用的是八进制或十六进制数。
例: main( )
{unsigned int a=0;
printf("%x, %u\n", ~a, ~a);
}
运行结果:ffff, 65535
实际上:a=0000 0000 0000 0000 0
~a=1111 1111 1111 1111 65535
(十六进制:ffff)
若:a=0000 0000 0000 0001 1
则:~a=1111 1111 1111 1110 65534
(十六进制:fffe)