C语言

C语言位运算基础知识

时间:2024-02-20 11:22:11 宇涛 C语言 我要投稿
  • 相关推荐

C语言位运算基础知识

  位运算是计算机科学中的一种基本运算,它主要是对二进制位进行操作。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