文档详情

C语言中常用的符号.doc

发布:2017-06-08约1.51千字共2页下载文档
文本预览下载声明
1.按位与运算 ???? 概念 ???? “按位与”运算符“”是双目运算符,其功能是将参与运算两数的各对应二进位相与。只能对应的两个二进位均为1时,结果位才为1,否则为0。 ???? “按位与”与运算的特殊用途 ???? .清零 ???? 如果想将一个存储单元清零,即使其全部二进位为0,可按这样的方法计算: ???? 找一个数,它的补码形式中各位的值符合如下条件:原来的数中为1的位,新数中相应位为0(注意,并不要求原数为0的位上,新数相应位为1,新数相应位可以是0或1);对二者进行运算。 ???? .取一个数中某些字节 ???? 对于一个整数a(占2个字节),如要想得到其中的低字节,只需将a与特定的一个数按位与即可。 ???? 要想将一个数的某一位保留下来,可将该数与一个特定的数进行处理。 ???? 2.按位或运算 ???? “按位或”运算符“︳”是双目运算符,其功能是将参与运算两数的各对应的二进位相或。只要对应的两个二进位有一个为1时,结果位就为1。参与运算的整数均以补码出现。 ???? 3.按位异或运算 ???? 概念 ???? “按位异或”运算符“”是双目运算符,其功能是将参与运算两数的各对应位相异或,当两对应的二进位相异时,结果为1,否则为0。参与运算整数仍以补码出现。 ???? “异或”运算的特殊应用 ???? .使特定位翻转 ???? .与0相“异或”,保留原值。 ???? .交换两个值。 ???? 4.“取反”运算 ???? “~”是一个一元运算符,即它的运算量只有一个,用来对一个二进制数按位取反,即将0变1,1变0。比如说,~025就是对八进制数25(即二进制数000000000010101)按位求反。 ???? 15.3 移位运算 ???? 1.移位运算符 ???? 移位运算是对操作数以二进制位为单位进行左移或右移,如表所示。 ???? 移位操作 运算符 名 称 例 子 运算功能 右移位 b3 b右移3位 左移位 c2 c左移2位 2.左移运算 ???? 左移运算符“”是双目运算符,其功能把“”左边的运算数的各二进位全部左移若干位,由“”右边的数指定移动的位数,高位丢弃,低位补0。例如; ?????? a4 ???? 就把a的各二进位向左移动4位。如a十进制3),左移4位后十进制48)。 ???? 3.右移运算 ???? 右移运算符“”是双目运算符,其功能是把“”左边的运算数的各二进位全部右移若干位,“”右边的数指定移动的位数。例如: ?????? a=15,a2 表示把000001111右移十进制3)。应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0;而为负数时,符号位为1,最高位是补0或1取决于编译系统的规定。Turbo C 规定补1。 ???? 右移运算相当于将运算对象除2. ???? 15.4 位赋值运算 ???? 位赋值运算符如表所示。 ???? 位赋值运算符 运算符 名 称 例 子 等价于 = 位与赋值 a=b a=2b ︳= 位或赋值 a|=b a=a|b = 位异或赋值 a=b a=a∧b = 右移赋值 ab a=ab = 左移赋值 a=b a=a 位赋值运算的过程为: ???? (1)先对两个操作数进行位操作; ???? (2)然后把结果赋予第一个操作数,因此第一个操作数必须是变量。 ???? 位赋值运算与算术赋值运算相似,它们都统称复合赋值运算。
显示全部
相似文档