C语言 百分网手机站

C语言位运算的基础知识

时间:2020-09-21 14:16:36 C语言 我要投稿

C语言位运算的基础知识

  程序中的所有数在计算机内存中都是以二进制的形式储存的,位运算就是直接对整数在内存中的二进制位进行操作。下面整理了一些C语言位运算的基础知识,一起来看看!

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语言位运算基础知识11-21

C语言位运算10-05

C语言的位运算10-02

c语言位运算符的用法11-02

C语言位运算和sizeof运算符详解10-02

c语言位运算符的用法指导10-06

C语言中的运算规则10-08

c语言算术运算符10-06

C语言条件运算符11-06