第12章位运算 第十二章位运算 主讲福州大学数学与计算机学院韩晓芸 E-mail:hxy@fjtv.net
第12章 位运算 1 第十二章 位运算 主讲 福州大学数学与计算机学院 韩晓芸 E-mail: hxy@fjtv.net
第12章位运算 位运算符号和位运算 为了节省存空,在系统软件中 常将多个标志状态简单地组合在一起, 存储到一个字节(或字)中。C语言是 为研制系统软件而设计的,所以提供了 实现将标状本从标态字中分离出来 的位运算功能。 所谓位运算是指,按二进制位进行 的运算
第12章 位运算 2 为了节省内存空间,在系统软件中 常将多个标志状态简单地组合在一起, 存储到一个字节(或字)中。C语言是 为研制系统软件而设计的,所以提供了 实现将标志状态从标志字节中分离出来 的位运算功能。 所谓位运算是指,按二进制位进行 的运算。 位运算符号和位运算
第12章位运算 位运算符号和位运算 主要内容 1、位运算符和位运算 2、位段
第12章 位运算 3 主要内容: 1、位运算符和位运算 2、位段 位运算符号和位运算
位运算 位运算符号和位运算 1、位运算及其运算符 1)按位与— 格式:x&y 规则:应位均为的才为1,否则为0 例如:389=1:0011 81001 0001=1 用途:取或保留1个数的某均位,其余各位 置0。全部清0,则匀0进代&运算即可
第12章 位运算 4 位运算符号和位运算 1、位运算及其运算符 1)按位与──& 格式:x&y 规则:对应位均为1时才为1,否则为0。 例如: 3&9=1: 0011 & 1001 0001=1 用途:取(或保留)1个数的某(些)位,其余各位 置0。全部清0,则与0进行&运算即可
第12章位运算 位运算符号和位运算 1、位运算及其运算符 1)按位与— 方法:将要取(保角)的位全部设为1,其会 位都为0,进行8运算即可得到结果 例:输入一个2位十进制自然数n,求其二进 制的后3位数值是多少?取低8位呢? 见示范
第12章 位运算 5 1、位运算及其运算符 1)按位与──& 方法:将要取(保留) 的位全部设为1,其余 位都为0,进行&运算即可得到结果。 例:输入一个2位十进制自然数n,求其二进 制的后3位数值是多少?取低8位呢? 见示范 位运算符号和位运算
第12章位运算 位运算符号和位运算 1、位运算及其运算符 2)按位或一 格式:刈xy 规则:对应位均为0时水为0,否则为1。 例如:3|9=11:0011 1001 1011=11
第12章 位运算 6 1、位运算及其运算符 2)按位或── | 格式:x|y 规则:对应位均为0时才为0,否则为1。 例如:3|9=11: 0011 | 1001 1011=11 位运算符号和位运算
第12章位运算 位运算符号和位运算 1、位运算及其运算符 2)按位或 用途:将1个数的某(些)位凰1,其余各位不变 方法:将该位设置为1,其余各位为0,进行运 算,如得到结果 例:将一个数的低5位置1,其余不变。 见示范
第12章 位运算 7 1、位运算及其运算符 2)按位或── | 用途:将1个数的某(些)位置1,其余各位不变。 方法:将该位设置为1,其余各位为0,进行|运 算,则得到结果。 例:将一个数的低5位置1,其余不变。 见示范 位运算符号和位运算
第12章位运算 位运算符号和位运算 1、位运算及其运算符 3)按位异或一A 格式:x^y 规则:对应位相的为0,不同时为1 如:3^9=10。见示范 途1:使1个数的某(些位翻转(即原来为1的 位变为0,为0的变为1,其余各位不变。 方法:该位为,其会位为0,进行运算n
第12章 位运算 8 1、位运算及其运算符 3)按位异或──^ 格式:x^y 规则:对应位相同时为0,不同时为1 如:3^9=10。见示范 用途1:使1个数的某(些)位翻转(即原来为1的 位变为0,为0的变为1),其余各位不变。 方法:该位为1,其余位为0,进行^运算。 位运算符号和位运算
第12章位运算 位运算符号和位运算 1、位运算及其运算符 3)按位异或—一A 途2:交换两个数的值。 方法:以下3步(交换a、b的值) a=a b b=ba a=ab 如:011和101交换,见示范
第12章 位运算 9 1、位运算及其运算符 3)按位异或──^ 用途2:交换两个数的值。 方法:以下3步(交换a、b的值) a=a^b; b=b^a; a=a^b 如:011和101交换,见示范。 位运算符号和位运算
第12章位运算 位运算符号和位运算 1、位运算及其运算符 4)按位反 格式:~x 规则:各位翻转,即原来为1的位变成0,原 来为0的位变成1 用途:间接地构造一个数,以增强程序的可 移植性。 10
第12章 位运算 10 1、位运算及其运算符 4)按位取反── ~ 格式:~x 规则:各位翻转,即原来为1的位变成0,原 来为0的位变成1。 用途:间接地构造一个数,以增强程序的可 移植性。 位运算符号和位运算