在问一个整型和BCD码的转换有关问题,多谢
在问一个整型和BCD码的转换问题,在线等,谢谢!
Int16 char[]={0x01,0x03,0x08,0x01,0x06,0x05,0x09};
想得到以下结果:
result[]={0x13,0x81,0x65,0x9F}//最后空缺补F
如何实现?谢谢!
------解决方案--------------------
把数组偶数位的左移4位,然后加上奇数位的数就OK了,如果最后一个奇数位空缺,就用0x0F代替
------解决方案--------------------
给大家介绍个技术群
大家一起学习,一起提高
24964327
------解决方案--------------------
#include <iostream>
using namespace std;
int main()
{
char s[]={0x01,0x03,0x08,0x01,0x06,0x05,0x09};
unsigned char temp = 0x00;
for(int i=0;i <7;i++)
{
if(i%2==0)
{
s[i] = s[i] < < 4;
if((i+1) > =7)
s[i+1] = 0x0f;
temp = s[i] + s[i+1];
printf( "0x%x\n ",temp);
}
}
system( "pause ");
return 0;
}
------解决方案--------------------
int src[]={0x01,0x03,0x08,0x01,0x06,0x05,0x09}, result[4];
int i, index=0;
for(i=0; i <sizeof(src)/sizeof(int); i++)
{
if(i> 0 && i%2==0){index++; result[index]=src[i];}
else {result[index] < <=4; result[index]+=src[i];}
}
if(result[index] <= 0x0f){result[index] < <=4; result[index]+=0x0f;} //处理末位元素
Int16 char[]={0x01,0x03,0x08,0x01,0x06,0x05,0x09};
想得到以下结果:
result[]={0x13,0x81,0x65,0x9F}//最后空缺补F
如何实现?谢谢!
------解决方案--------------------
把数组偶数位的左移4位,然后加上奇数位的数就OK了,如果最后一个奇数位空缺,就用0x0F代替
------解决方案--------------------
给大家介绍个技术群
大家一起学习,一起提高
24964327
------解决方案--------------------
#include <iostream>
using namespace std;
int main()
{
char s[]={0x01,0x03,0x08,0x01,0x06,0x05,0x09};
unsigned char temp = 0x00;
for(int i=0;i <7;i++)
{
if(i%2==0)
{
s[i] = s[i] < < 4;
if((i+1) > =7)
s[i+1] = 0x0f;
temp = s[i] + s[i+1];
printf( "0x%x\n ",temp);
}
}
system( "pause ");
return 0;
}
------解决方案--------------------
int src[]={0x01,0x03,0x08,0x01,0x06,0x05,0x09}, result[4];
int i, index=0;
for(i=0; i <sizeof(src)/sizeof(int); i++)
{
if(i> 0 && i%2==0){index++; result[index]=src[i];}
else {result[index] < <=4; result[index]+=src[i];}
}
if(result[index] <= 0x0f){result[index] < <=4; result[index]+=0x0f;} //处理末位元素