一个非常简单粗暴的六位十六进制补码转十进制代码

一个非常简单粗暴的六位十六进制补码转十进制代码

  • 写这个的原因
  • 参考代码

写这个的原因

主要是目前的项目中有用到ADS1292R这款芯片,通过蓝牙进行数据传输,它共有两组数据传输过来,一组是ECG,一组是RESP。这款芯片输出的一个数据是24位二进制数,一次输出ECG和RESP一组两个数据。
最终我们从蓝牙调试串口读到的则是 12位16进制数。我们要把这12位拆成前6位和后6位,然后再将他们转化为10进制,来进行后续操作。我们没有在单片机上进行额外的操作,直接简单粗暴就把数据发送过来了。得到蓝牙数据后,我们选择用Cpp语言对其进行处理。

我非常的没水平,程序非常简单粗暴,不是一个很好的样例。各位多包容,希望可以对一些朋友有帮助。

参考代码


#include "stdafx.h"
#include 
#include 
#include 
#include 
#include 
#include "math.h"
using namespace std;

ifstream ifile;
ofstream ofile;

string HEXchangeTWO(string n){

	string i;
	i = n;
	if (i == "0") return "0000";
	if (i == "1") return "0001";
	if (i == "2") return "0010";
	if (i == "3") return "0011";
	if (i == "4") return "0100";
	if (i == "5") return "0101";
	if (i == "6") return "0110";
	if (i == "7") return "0111";
	if (i == "8") return "1000";
	if (i == "9") return "1001";
	if (i == "A") return "1010";
	if (i == "B") return "1011";
	if (i == "C") return "1100";
	if (i == "D") return "1101";
	if (i == "E") return "1110";
	if (i == "F") return "1111";
}

int TWOchangeTen(string a)
{
	int n;
	n = a.length();
	double TEN;
	int A[24];
	string tempTCT(a);
	for (int i = 0; i < 24; i++)
	{
		string tempTWO;
		tempTWO.assign(tempTCT, i, 1);
		stringstream ss;
		ss << tempTWO;
		ss >> A[i];
	}
	
	if (A[0] == 0)
	{
		TEN = 0;
		for ( int i = 1 ; i <= 23 ; i++)
		{
			TEN = TEN + (pow(2,(23-i))) * A[i];
		}
	}
	else
	{
		TEN = -1 * (pow(2 , 23));
		
		for (int i = 1; i <= 23; i++)
		{
			TEN = TEN + (pow(2 , (23 - i))) * A[i];
		}
		
	}
	
	return TEN;
}

int main()
{
	string s[1000];
	int itemp = 500;
	cout << "你好" << endl;
	ifile.open("你的路径你的路径你的路径你的路径");//这里是您存放12位16进制数的路径。
	for (int i = 0; i < itemp; i++)
	{
		ifile >> s[i];
	}
	
	ifile.close();

	for (int i = 0; i < itemp; i++)
	{
		cout << s[i]<

你可能感兴趣的:(BME)