c语言12转十二,[经济学]C语言第12_13.ppt

本文详细介绍了C语言中的位运算,包括位逻辑运算符、位移位运算符及其应用,并提供了实例演示。同时,讲解了位段的概念以及文件操作的基础知识,如文件类型指针、文件的打开、关闭、读写函数。通过对位运算和文件操作的理解,有助于提升C语言编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[经济学]C语言第12_13

第十二章 位运算 掌握位运算的概念和方法,学会使用位运算符; 学会通过位运算实现对某些位的操作; 了解位段的概念以及位段的定义和引用。 §12.1 相关概念 §12.2 位运算和位运算符 §12.3 位段 第十三章 文 件 掌握文件以及缓冲文件系统、文件指针的概念; 学会使用文件打开、关闭、读、写等文件操作函数。 §13.1 C文件概述 §13.2 C文件类型指针 §13.3 文件的打开和关闭函数 §13.4 文件的读写函数 * 1. 位(bit):是指二进制中的位,它是计算机能 处理的最小单位。 2. 字节(byte):是计算机处理的基本单位。计算 机的内存是按字节进行分配的。一个字 节有八位二进制数组成。所以我们在C语 言中数据类型都是以字节为基本单元。 3. 补码:一个正数的补码是其本身;一个负数的 补码是其绝对值按位取反后加1。计算 机是以补码的形式存放数的。 例如:-7 的补码是 1111 1111 1111 1001 一、位运算的概念 位运算:以二进制位为单位的运算。 二、位运算符 “位运算”仅 限于整数(整型数和字符型)。 位逻辑运算符(~、&、^、| ) 位移位运算符(<>) 位复合赋值运算符( &=、|=、^=、<<=、>>=) 1. 位逻辑运算符 ~ (按位求反)、& (按位与)、^ (按位异或) 、| (按位或) 运算规则: ~1=0 ~0=1 0&0=0 0&1=0 1&0=0 1&1=1 0^0=0 0^1=1 1^0=1 1^1=0 0 | 0=0 0 | 1=1 1 | 0=1 1 | 1=1 例如:main() { unsigned char a,b; a=0x9d; b=0xa5; printf(“~a: %x\n”, ~a); printf(“a&b: %x\n”,a&b); printf(“a | b: %x\n”,a | b); printf(“a^b: %x\n”,a^b); } 输出结果: ~a: a&b: a | b: a^b: 62 85 bd 38 位逻辑运算符的应用: &运算符的应用:①与0相&,清0; ②与1相&,取指定位 。 | 运算符的应用:与1相 | ,可对某些位定值为1。 ^运算符的应用:与1相^,使特定位翻转; 2.位移位运算符 <>(按位右移) 运算规则: 移位时,移出的位数全部丢失,移出的空位补入的数与左移还是右移有关。 左移——补入的数全都是0 右移 无符号数——补入的数全都是0 有符号数——取决于系统(补入0或符号位) 例如:unsigned a=3; a<<2的十进制值是: a>>1的十进制值是: 12 1 3.位复合赋值运算符 由位运算符与赋值运算符组成。 &=、|=、^=、<<=、>>= 例如:a&=b相当于a=a&b a<<2相当于 a=a<<2 三、 位运算符的优先级 位运算符自身的优先级为(从高到低) : ~、(<>)、 &、 ^、| 位运算符与其他运算符相比较优先级为(从高到低): ~、算术运算符、(<>)、关系运算符、&、^、|、逻辑运算符、条件运算符、赋值(复合赋值)运算符、逗号运算符 例如:char a=9, b=020; printf(“%o\n”,~a&b<<1); 输出结果:40 位段:在一个结构体中可以以位为单位来指定 其成员所占内存长度,这种以位为单位 的成员称为位段(或位域)。 如:struct packed_data { unsigned a : 2; unsigned b : 3; unsigned c : 4; int i; }data; 存储单元分配:共4个字节 7 16 4 3 2 a b c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值