欢迎来到天天文库
浏览记录
ID:45873540
大小:351.00 KB
页数:25页
时间:2019-11-18
《位运算与枚举类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序设计技术C语言数据描述和C程序设计初步结构化程序设计基础和C语言的控制结构数组及其应用函数与C程序结构指针与函数指针与数组字符串及其应用结构体类型和联合体类型C语言的文件处理及其应用位运算与枚举类型位运算与枚举类型C语言的位运算及其应用位段及应用枚举数据类型及其应用位运算位运算的概念二进制位(Bit)二进制位(Bit)是计算机系统中能够表达的信息最小单位,一个二进制位能够表达出两个信息“0”和“1”。字节(byte)字节(byte)是计算机系统中的基本信息单位,一个字节由8个二进制位组成,其中最右边一位称为“最低有效位”,最左边的一位称为“最高有效位”。位运算注意点位
2、运算的数据对象只能是整型类型兼容的数据;位运算中将参加位操作的数据对象(整型类型)拆开为二进制位看待。位运算位运算符C语言提供了下列11个用于位操作的运算符或复合运算符对程序设计中的位运算提供支持运算符运算符含义运算符运算符含义&按位与&=位与赋值
3、按位或
4、=位或赋值^按位异或^=位异或赋值~按位取反<<=左移赋值<<按位左移>>=右移赋值>>按位右移位运算按位与运算符(&)按位与运算符&是一个双目运算符;功能将参加操作的两个对象的各个位分别对应进行“与”运算,即:两者都为1时结果为1,否则结果为0;设有十进制整数:x=128、y=64,则:000000000000000
5、00000000010000000(十进制数:128)&)00000000000000000000000001000000(十进制数:64)00000000000000000000000000000000(十进制数:0)运算结果:x&y=0。例10-1按位与运算示例。位运算按位或运算符(
6、)按位或运算符
7、是一个双目运算符;功能将参加操作的两个对象的各个位分别对应进行“或”运算,即:两者都为0时结果为0,否则结果为1。设有十进制整数:x=128、y=64,则:00000000000000000000000010000000(十进制数:128)
8、)00000000000000
9、000000000001000000(十进制数:64)00000000000000000000000011000000(十进制数:192)运算结果:x&y=192例10-2按位或运算示例。位运算按位异或运算符(^)按位异或运算符^是一个双目运算符;功能将参加操作的两个对象的各个位分别对应进行“异或”运算,即:两者值相同时结果为0,否则结果为1。设有十进制整数:x=128、y=64,则:00000000000000000000000010000000(十进制数:128)^)00000000000000000000000001000000(十进制数:64)0000000000
10、0000000000000011000000(十进制数:192)运算结果:x&y=192例10-3按位异或运算示例。位运算按位取反运算符(~)按位取反运算符~是一个单目运算符;功能将参加操作的对象的各个位进行“取反”操作,即:0变为1,1变为0。设有十进制整数:x=128,则:00000000000000000000000010000000(十进制数:128)~x=11111111111111111111111101111111(十进制:4294967167)运算结果:~x=4294967167例10-4按位取反运算示例。位运算左移运算符(<<)左移运算符<<是一个双目运
11、算符;功能将参加操作的左操作对象的全部位向左移动右操作对象指定的位数,左移出去的数位丢失,左移后数的右边补0。设有十进制整数:x=128、移动位数为2,则:00000000000000000000000010000000(十进制数:128)x<<200000000000000000000001000000000(十进制数:512)运算结果:x<<2=512例10-5左移运算示例。位运算左移运算符(<<)左移位运算的特点数据对象进行左移操作时,只要没有出现溢出现象(即移位后的数据仍在取值范围之内),那么某数左移一位相当于将该数乘2;若在数据对象的左移操作中出现了溢出现象,则
12、数据对象不能正确表示出来;设有十进制整数:x=128、移动位数为25,则:00000000000000000000000010000000(十进制:128)x<<25100000000000000000000000000000000(十进制:0,最前面的1丢失)位运算右移运算符(>>)右移运算符>>是一个双目运算符;功能将参加操作的左操作对象的全部位向右移动右操作对象指定的位数,右移出去的数位丢失,右移后左边留下的空位填充取决于左操作对象的数据类型:对无符号数据(unsignedchar和unsignedint),左边补0;对
此文档下载收益归作者所有