立题简介:
内容:数据值Value传递-高位传递;
来源:实际得出;
作用:数据值Value传递-高位传递;
开发环境:Windows10+Visual Studio 2013;;
日期:2019-04-14;
=====================分割线========================
立题详解:
本次介绍“数据值Value传递-高位传递(bit位操作)”,开发环境:Windows10+Visual Studio 2013;使用方法为“bit位操作”;
1、数据传递-背景
在嵌入式或是基础数据处理中,若是使用“串行协议”,由于其本质为“按bit位传递”,必将会涉及到“数据的拆分/组合”;同时,对计算机而言:其内部实际运作时,本质也为bit操作;因此对代码而言:使用“bit操作方式”比使用“数据类型操作方式”快很多;
2、实现方法-高位传递
本次介绍“数据值Value传递-高位传递(bit位操作)”,开发环境:Windows10+Visual Studio 2013;使用方法为“bit位操作”;
所用代码如下图所示:
![87287eb646fa632dc79018443efd2ad6.png](https://i-blog.csdnimg.cn/blog_migrate/2fe906f4336d571fac4153e9fd545a61.jpeg)
注意4点:
i)、临时变量:为不损坏原始数据,将“a的值”先赋给中间变量“temp”,保证“原始数据”的安全性;
ii)、取bit位参数:为实现“高位传输”,将“a的值”拆分为“8bit”(也可为16bit、32bit),具体根据实际情况而定,“逐位与0x80”进行“按位与&运算”,即“逐位获取最高位bit”,其中“0x80”换算为“二进制”值为“1000 0000”;
iii)、取bit位赋值:为实现“高位传输”,初始即将“b参数设定为0”,值对“非0位进行赋值”,由于为“高位传输”,即与“最高位bit”的参数“按位或|”即可;
iv)、临时变量移位:为实现“高位传输”,本次采用为“8bit”,“最高下标”为“7”,每次将“a变量”按“向左移位(<;
代码段如下:
int _tmain(int argc, _TCHAR* argv[])
{
int a = 165, b = 0;
int bit_flag = 0;
int temp = 0;
int i = 0;
printf("a原始值: %d.