本人用过的十六进制、BCD码之间的转换C程序,还有十进制的,可以参考使用,
#include #include / // //功能:十进制转十六进制 // //输入:int dec???????????????????? 待转换的十进制数据 //????? int length????????????????? 转换后的十六进制数据长度 // //输出:unsigned char *hex????????? 转换后的十六进制数据 // //返回:0??? success // //思路:原理同十六进制转十进制 // int DectoHex(int dec, unsigned char *hex, int length) { ??? int i;
??? for(i=length-1; i>=0; i--) ??? { ??????? hex[i] = (dec%256)&0xFF; ??????? dec /= 256; ??? }
??? return 0; }
/ // //功能:二进制取反 // //输入:const unsigned char *src? 二进制数据 //????? int length??????????????? 待转换的二进制数据长度 // //输出:unsigned char *dst??????? 取反后的二进制数据 // //返回:0??? success // // int convert(unsigned char *dst, const unsigned char *src, int length) { ??????? int i;
??????? for(i=0; i
// // //功能:十六进制转为十进制 // //输入:const unsigned char *hex???????? 待转换的十六进制数据 //????? int length?????????????????????? 十六进制数据长度 // //输出: // //返回:int? rslt??????????????????????? 转换后的十进制数据 // //思路:十六进制每个字符位所表示的十进制数的范围是0 ~255,进制为256 //????? 左移8位(<<8)等价乘以256 // / unsigned long HextoDec(const unsigned char *hex, int length) { ??? int i; ??? unsigned long rslt = 0;
??? for(i=0; i
??? return rslt; }
/ // //功能:求权 // //输入:int base??????????????????? 进制基数 //????? int times?????????????????? 权级数 // //输出: // //返回:unsigned long?????????????? 当前数据位的权 // //