C语言与通讯数据处理.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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的地址。

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档