linux下字符串存储的有关问题
linux下字符串存储的问题
char A[5];
int b = 1234;
如何保存使A[0] = 34
A[1] = 12
A[2] = 00
A[3] = 00
A[4] = 00
即 A[5] = "3412000000";
我保存后总是“D204000000”,郁闷哪,求救,谢谢各位
------解决方案--------------------
仅供参考
char A[5];
int b = 1234;
如何保存使A[0] = 34
A[1] = 12
A[2] = 00
A[3] = 00
A[4] = 00
即 A[5] = "3412000000";
我保存后总是“D204000000”,郁闷哪,求救,谢谢各位
------解决方案--------------------
仅供参考
- C/C++ code
#include <stdio.h> #include <stdlib.h> #include <conio.h> unsigned int iv,i; unsigned char BCD[5];//定长10位BCD码 unsigned char sv[11]; void main() { iv=123456789;//最大10位无符号正整数 //INT2BCD sprintf(sv,"%010u",iv); for (i=0;i<10;i+=2) { BCD[i/2]=(sv[i]<<4)|(sv[i+1]&0x0F); } printf("BCD=%02x%02x%02x%02x%02x\n",BCD[0],BCD[1],BCD[2],BCD[3],BCD[4]); //BCD2INT for (i=0;i<10;i+=2) { sv[i]='0'|(BCD[i/2]>>4); sv[i+1]='0'|(BCD[i/2]&0x0F); } sscanf(sv,"%010u",&iv); printf("iv=%010u\n",iv); getch(); }