- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言与通讯数据处理
* C语言与通讯数据处理 扬州大学水利与能源动力工程学院 2017.12.18 * 主要内容 一、C语言复习 二、通讯协议 三、发送和接收数据处理 四、VC++程序模板介绍 五、通讯协议的数据结构 六、通讯数据结构的处理 * 位运算符 ~ ^ | 位逻辑运算符 移位运算符 单目 位运算符的运算对象只能是整型数据或字符型数据,不能是实型数据 运算对象一律按二进制补码参加运算,并按位进行运算 位运算的结果是一个整型数据 低于单目、算术运算符,高于其他运算符 低于单目、算术和关系运算符,高于其他运算符 * 位逻辑运算符的运算规则 假设ai和bi均是一个二进制位(bit) 运算对象 逻辑运算结果 ai bi aibi ai|bi ai ^bi ?ai 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 例如:假设a=10,b=8 求ab、 a | b、 a^b、?a * 程序如下: main( ) { int a=10, b=8; printf(%d %d\n, ab, a|b); printf(%d %d\n, a^b, ~a); } 输出结果: 8 10 2 -11 0000 0000 0000 1010 0000 0000 0000 1000 0000 0000 0000 1000 即:ab的值是8 0000 0000 0000 1010 ? 1111 1111 1111 0101 即:?a的值是-11 “与”、”或”常用在将某几位清0或置1 * 为提高程序可读性,可定义: #define BIT0 0x0001 #define BIT1 0x0002 #define BIT2 0x???? … #define BIT15 0x8000 main( ) { unsigned short a=10, b=8; printf(%d %d\n, aBIT0, a|BIT1); printf(%d %d\n, a^BIT15, ~a); } * 移位运算 例如: ab a+8b-1 等价于 (a+8)(b-1) 例如:假设a=10,b=2,求ab、a+8b-1 main( ) { int a=10, b=2; printf(%d %d\n, ab, a+8b-1); } 输出结果: 40 9 * 一个变量的地址称为该变量的“指针”。 例如,地址2000是变量i的指针。如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”。右边的i_pointer就是一个指针变量。(*任何指针占用空间相同) 指针和指针变量的定义: * 下面都是合法的定义: float *pointer_3; char *pointer_4; void *p5; 可以用赋值语句使一个指针变量得到另一个变 量的地址,从而使它指向一个该变量。 例如: pointer_1=&i; pointer_2=&j; * 在定义指针变量时要注意两点: 指针变量前面的“*”,表示该变量的类型为指针型变量。 例: float *pointer_1; 指针变量名是pointer_1 ,而不是* pointer_1 。 (2) 在定义指针变量时必须指定基类型。 需要特别注意的是,只有整型变量的地址才能放到指向整型变量的指针变量中。下面的赋值是错误的∶ float a; char * pointer_1; 指针强制转换: pointer_1=a; pointer_1=(char *)a; 在对指针变量赋值时需要注意两点: ⑴ 指针变量中只能存放地址(指针),不要将一个 整数赋给一个指针变量。 例: int * pointer_1=100; /* pointer_1是指针变量,100是整数,不合法? */ (2) 赋给指针变量的是变量地址不能是任意的类型,而只能是与指针变量的基类型具有相同类型的变量的地址。 在引用指针变量时,可能有三种情况: ⑴给指针变量赋值。如: p=a; ⑵引用指针变量的值。如: printf(“%o”,p); ⑶引用指针变量指向的变量。 printf(“%o”,*p); 有关的两个运算符: & 取地址运算符。 a是变量a的地址。
您可能关注的文档
- CASS教程3.ppt
- CAD 图形的绘制与编辑.ppt
- Cap+ system 设置指南.pptx
- CE系列交换机VS(Virtual System)特性介绍V100R002C00_C.pptx
- CAD原理2.ppt
- ch06-指令格式与寻址方式2.ppt
- ch1-3-线性多步法.ppt
- ch08轮系.ppt
- CH14_AC绕组MMF.ppt
- ch11 杜邦分析法.pptx
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
最近下载
- JGJ33-2012 建筑机械使用安全技术规程.docx VIP
- TB_10307-2020 铁路通信、信号、信息工程施工安全技术规程.docx VIP
- 简明新疆地方史读本电子版 .pdf VIP
- 基于PLC的加热反应炉自动控制系统设计.pdf VIP
- 抗病毒药物的合理使用课件.pptx VIP
- TB10181-2017 铁路隧道盾构法技术规程.docx VIP
- 静脉输液课件(共87张PPT).pptx VIP
- 《商业银行经营与管理》22春平时作业1答卷.doc VIP
- 2024-2025学年小学美术五年级上册桂美版(2024)教学设计合集.docx
- 2022年版初中物理课程标准新课标考试题库及答案1 .pdf VIP
文档评论(0)