欢迎光临散文网 会员登陆 & 注册

【2022官方C语言】9小时快速学会C语言!动画讲解C语言视频教程 c语言零基础

2023-02-17 13:51 作者:SKYWAKler  | 我要投稿

位运算

运算符

含义

优先级别

~

按位取反

1(高)

<<

左移

2

>>

右移

3

&

按位与

4

^

按位异或

5

|

按位或

6(低)

Ø 位运算符的运算功能

一、“按位取反”运算~

a:10001101             b=~a;      b:01110010

二、“左移”运算

a:00000110             b=a<<2;    b:00011000

三、“右移”运算

a:00000110             b=a>>2;    b:00000110

四、“按位与”运算

a:00000110  b:00111110

则a&b的结果为:

   00000110

& 00111110

   00000110

五、“按位异或”运算

00110011

^  11000011

   11110000

六、“按位或”运算

   01010011

|  00001100

   01011111

Ø 位数不同的运算数之间的运算规则

位运算的对象可以是整型和字符型数据。当两个运算数类型不同时位数亦会不同。遇到这种情况,系统将自动进行如下处理:

1、先将两个运算数右端对齐

2、再将位数短的一个运算数往高位扩充:无符号数和正整数左侧用0补全,负数左侧用1补全,然后对位数相等的这两个运算数按位进行位运算。

Ø 练习:

一、选择题

1、有以下程序:

#include<stdio.h>

void main(){

   char x=040;

   printf(“%d\n”,x=x<<1);

}

程序运行后的输出结果是(  )

A.100       B.160        C.120          D.64

2、设有定义语句:

char a=3,b=6,c;

则执行复制语句c=a^b<<2;后变量c中的二进制值是(  )

A.00011011     B.00010100     C.00011100    D.00011000

3、有以下程序:

#include<stdio.h>

void main(){

   short int x=35; char z=’A’;

   printf(“%d\n”,(x&15)&&(z<’a’));

}

程序运行后的输出结果是(  )

A.0         B.1          C.2         D.3

4、有以下程序:

#include<stdio.h>

void main(){

   short int a=5,b=6,c=7,d=8,m=2,n=2;

   printf(“%d\n”,(m=a>b)&(m=c>d));

}

程序运行后的输出结果是(  )

A.0         B.1         C.2           D.3

二、填空题

1、设变量a的二进制数是00101101,若想通过运算a^b使a的高四位取反,低四位不变,则b的二进制数应是         。

2、a为任意整数。能将变量a清零的表达式是          。

3、a为八进制数07101。能将变量a中的各二进制位均置成1的表达式是              。

4、能将两字节变量x的高八位全置1,低八位字节保持不变的表达式是           。

5、运用位运算,能将八进制数012500除以4,然后赋给变量a的表达式是          。

6、运用位运算,能将字符型变量ch中的大写字母转换成小写字母的表达式是     

【2022官方C语言】9小时快速学会C语言!动画讲解C语言视频教程 c语言零基础的评论 (共 条)

分享到微博请遵守国家法律