C++ 位操作
来源:互联网 发布:设计图标的软件 编辑:程序博客网 时间:2024/06/14 10:31
最近很不幸的接到了解析雷达报文的任务,按照上边的意思,这个东西需要用C++来完成,但在这之前我从来没有接触过C++。所幸C还是会一点点(只是一点点),就硬着头皮做了起来,在这过程中遇到了很多问题,通过翻书上网查解决了一部分,也还有一些不明不白的,就在这里做个记录吧。
1.大端机与小端机
由于所要解析的雷达报文有许多信息都是需要按位(bit)处理,所以大端机和小端机是什么就必须理解。这是数据在内存中的两种不同方式,对于大端机,最高有效位(MSB)存储在最低的内存地址上,以此存在后边的地址,小端机则相反,最低有效位(LSB)存储在最低的内存地址上。
2.位运算符
&按位于每一位一一对应进行于运算。
|按位或每一位一一对应进行或运算。
^按位异或每一位一一对应进行异或。
~按位取反每一位都取反,即1取0,0取1。
<<和>>平移,例如:int a=0; int b=(a<<8);b就是a的二进制码向左平移8位所得到的数。
3.*和&
这两个家伙是最让我苦恼的,因为所有的解析返回值都是成功标示,数据的一些改变就只有通过指针来进行。最后查了一些资料才明白,*是间接运算符int* a标示a是一个指针,*a是int类型的,而&是地址运算符 可以用来取某一个值的地址。在函数参数中使用&运算符表示某一个参数是对值的引用,最这一个参数的改变会一直存在。例如:
int Function(int& num)我们有这样一个函数,然后这样调用他;
int a=1;
int b;
b=Function(a);
这时,在函数Function中改变了参数a=num的值,在外部,a的值也会随之改变。
- C的位操作
- C语言 位操作
- C 位操作
- c++(位操作符)
- C语言位操作
- C-位操作
- C语言位操作
- C/C++位操作
- C 位操作 详解
- C语言位操作
- C语言位操作
- C语言位操作
- C 位操作
- C 位操作
- c语言位操作
- C语言位操作
- c语言位操作
- C语言-位操作
- Linux网络协议栈--ip_append_data函数分析
- Python基础教程——5条件、循环和其他语句
- Android 中关于 【Cursor】 类的介绍
- 遍历目录下文件夹并删除
- centos内核编译
- C++ 位操作
- 通过js根据接收的数据控制select标签的默认选择项
- Android 性能测试之TraceView的使用
- Myeclipse的使用方法-导入、导出Java 项目
- WaitForSingleObject的用法
- 333333333333
- C#与C/C++的交互 转自(warensoft)
- 谷歌需要性
- iOS如何添加图片资源以及设置应用程序图标