888从从从从从座座从从从8从从幽8从从从从B8从从 G语 程序设计 i制作h刘金连
第一章C语言概述 ·第二章数据类型、运算符与表达式 ·第三章最简单的c程序设计 第四章逻辑运算和判断选取控制 ·第五章循环控制 第六章数组 ·第八章编译预处理 第九章指针 第十章结构体与共用体 第十二章文件的基本操作 第十三章位运算
• 第一章 C语言概述 • 第二章 数据类型、运算符与表达式 • 第三章 最简单的C程序设计 • 第四章 逻辑运算和判断选取控制 • 第五章 循环控制 • 第六章 数组 • 第八章 编译预处理 • 第九章 指针 • 第十章 结构体与共用体 • 第十二章 文件的基本操作 • 第十三章 位运算
第十三章位运算
§13-1位运算概述 计算机的特点:数据是以二进制数表示的; 机器指令由二进制数组成的 二进制数:0, c語醒设计
§13-1位运算概述 计算机的特点:数据是以二进制数表示的; 机器指令由二进制数组成的。 二进制数:0,1
C语言的特点:具有高级语言和低级语言的功能 低级语言功能的表现: 调用BIOS中的各中断函数 调用系统功能的函数; 读写ⅣO端口的函数; 直接对数据的位或字节进行操作(只限 于char型和int型数据) 本章主要介绍位运算。 c語醒设计
C语言的特点:具有高级语言和低级语言的功能。 低级语言功能的表现: 调用系统功能的函数; 读写I/O端口的函数; 直接对数据的位或字节进行操作(只限 于char型和int型数据)。 调用BIOS中的各中断函数; 本章主要介绍位运算
C语言中的位操作运算符: 共有6个,分别如下: 作用:按位取反 如:a=10011010 则:~a=0110010 2.<<作用:按位左移 如:a=10011010 则:a<<2=01101000 c語醒设计
C语言中的位操作运算符: 共有6个,分别如下: 1. ~ 作用:按位取反 如:a=10011010 则:~a=01100101 2. << 作用:按位左移 如:a=10011010 则:a<<2=01101000
3.>作用:按位右移 如:a=10011010,b=01010011 则:a>>2=1110010(a为有符号数) b>2=00010100(b为无符号数) 4.&作用:按位与(1&1=1,1足0=0,080=0 如:a=10011010 b=01010011 则:a&b=00010010 c語醒设计
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.|作用:按位或(11,10=1,00=0 如:a=10011010 b=01010011 则:ab=1101101l 6.∧作用:按位异或(1∧1=0,1A0=1,0A0=0) 如:a=10011010 b=01010011 则:a∧b=11001001 c語醒设计
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
813-2.位运算符的使用方法 位运算符分为两类: 1.只有一个变量参与运算:~, 2.有两个变量参与运算:&,,∧ 位运算时,通常采用的是八进制或十六进制数。 c語醒设计
§13-2. 位运算符的使用方法 • 位运算符分为两类: 1. 只有一个变量参与运算: ~, > 2. 有两个变量参与运算: &, |, ∧ • 位运算时,通常采用的是八进制或十六进制数
例:main() unsigned int a=0 printf("%x, %un, a, a) 运行结果:ff,65535 实际上:a=000000000000000 ~a=1l11ll11→65535(十六进制:f 若:a=0000000000001→1 则:~a=111111111111065534(十六进制:fe) c語醒设计
例: 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)