- 相关推荐
C语言位运算基础知识
位运算是计算机科学中的一种基本运算,它主要是对二进制位进行操作。C语言中提供了六种位运算操作符,分别是按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>)。这些位运算可以用来完成许多有趣的操作,例如加密、解密、优化算法等等。以下是小编整理的C语言位运算基础知识,希望能够帮助到大家。
C语言位运算基础知识
1、程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。
2、与运算:只有前后两个运算数都是 1 的时候结果才是1。
3、或运算:有1位为1,结果便为1。
4、异或:不相同则为1。
5、取反运算:将1变为0,将0变为1。
6、移位运算:左移则乘2,右移则除2。如果超出边界,则舍弃。
c语言入门知识:位运算
一、位运算符
在计算机中,数据都是以二进制数形式存放的,位运算就是指对存储单元中二进制位的运算。C语言提供6种位运算符。
二、位运算
位运算符 & |~<< >> ∧ 按优先级从高到低排列的顺序是:
位运算符中求反运算“~“优先级最高,而左移和右移相同,居于第二,接下来的顺序是按位与 “&“、按位异或 “∧“和按位或 “|“。顺序为~ << >> & ∧ | 。
例1:左移运算符“<<”是双目运算符。其功能把“<< ”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。
例如:
a<<4
指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。
例2:右移运算符“>>”是双目运算符。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。
例如:
设 a=15,a>>2
表示把000001111右移为00000011(十进制3)。
应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定。
例3:设二进制数a是00101101 ,若通过异或运算a∧b 使a的高4位取反,低4位不变,则二进制数b是。
解析:异或运算常用来使特定位翻转,只要使需翻转的位与1进行异或操作就可以了,因为原数中值为1的位与1进行异或运算得0 ,原数中值为0的位与1进行异或运算结果得1。而与0进行异或的位将保持原值。异或运算还可用来交换两个值,不用临时变量。
如 int a=3 , b=4;,想将a与b的值互换,可用如下语句实现:
a=a∧b;
b=b∧a;
a=a∧b;
所以本题的答案为: 11110000 。
【C语言位运算基础知识】相关文章:
c语言位运算符的用法07-21
C语言中的运算规则03-17
C语言基础知识12-20
C语言的条件运算符12-19
C语言条件运算符10-12
C语言关系运算符04-02
c语言入门基础知识07-18
C语言字符型基础知识03-15
C语言的基础知识点复习08-18
C语言逻辑运算符有哪些03-17