正在加载图片...
第二部分¢语言程序设计同步训练 交换两个值,不用临时变量。 5.按位取反(~) (1)运算规则:对一个二进制数按位取反,即将0变1,1变0。 (2)用途:~1,高位全部为1,只末位为0,再与其他数字进行其他位运算 0,所有位全部为1,再与其他数字进行其他位运算 6.左移位(<<) (1)运算规则:将一个数的各二进制位全部左移指定位;如a=a<<2; 高位左移后舍弃,低位补0。 所以,左移1位相当于该数乘以2,左移2位相当于该数乘以4,但此结论只适用于 该数左移时被溢出舍弃的高位中不包含1的情况。 (2)用途:常用来控制使一个数字迅速以2的倍数扩大。 7.右移位(>>) (1)运算规则:将一个数的各二进制位全部右移指定位;如a=a>2 低位右移后舍弃,高位补符号位:(即符号位为1,补1,符号位为0,补0) 所以,右移1位相当于该数除以2,右移2位相当于该数除以4。 (2)用途:常用来控制使一个数字迅速以2的倍数缩小 基础训练(A 、填空题 1.位运算是对运算量的 位进行运算。 2.C语言中,位运算符有 共六个。 3.位运算符连线 按位异或 按位与 按位取反 左移位 4.在六个位运算符中,只有是需要一个运算量的运算符 5.按位异或的运算规则是: 6.位运算符只对 和 数据类型有效。 7.有程序片段 int a=l, b=2 if(a printf("True!\n”); else printf("False! \n") 运行结果是: 、选择题 1.以下运算符中,优先级最高的是 C)&&第二部分 C 语言程序设计同步训练 ·275· ·275· 交换两个值,不用临时变量。 5. 按位取反( ~ ) (1) 运算规则:对一个二进制数按位取反,即将 0 变 1 ,1 变 0。 (2) 用途 :~1 ,高位全部为 1 ,只末位为 0 ,再与其他数字进行其他位运算。 ~ 0 , 所有位全部为 1 ,再与其他数字进行其他位运算。 6. 左移位( << ) (1) 运算规则:将一个数的各二进制位全部左移指定位;如 a=a << 2 ; 高位左移后舍弃,低位补 0。 所以,左移 1 位相当于该数乘以 2,左移 2 位相当于该数乘以 4 ,但此结论只适用于 该数左移时被溢出舍弃的高位中不包含 1 的情况。 (2) 用途 :常用来控制使一个数字迅速以 2 的倍数扩大。 7. 右移位( >> ) (1) 运算规则:将一个数的各二进制位全部右移指定位;如 a=a >> 2。 低位右移后舍弃,高位补符号位;(即符号位 为 1 ,补 1,符号位为 0,补 0) 所以,右移 1 位相当于该数除以 2,右移 2 位相当于该数除以 4。 (2) 用途 :常用来控制使一个数字迅速以 2 的倍数缩小。 基础训练(A) 一、填空题 1. 位运算是对运算量的_____________位进行运算。 2. C 语言中,位运算符有_____、______、______、____、>> 、 <<,共六个。 3. 位运算符连线: ~ 按位异或 << 按位与 & 按位取反 ^ 左移位 4. 在六个位运算符中,只有_________是需要一个运算量的运算符。 5. 按位异或的运算规则是:_____________________________________________。 6. 位运算符只对_______和___________数据类型有效。 7. 有程序片段: int a=1,b=2; if(a&b) printf(“True!\n”); else printf(“False!\n”); 运行结果是:____________________ 二、选择题 1. 以下运算符中,优先级最高的是______________。 A)~ , B) | C) && D) *
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有