在做嵌入式軟體的設計中,經常會遇到十六進製制、bcd碼與十進位制之間的轉換,最近做m1卡的應用中,涉及了大量的十六進製制、bcd碼與十進位制之間的轉換。筆者通過對bcd碼、十六進製制 權的理解,輕鬆的實現了他們之間的互換。
#include
#include
/ //
//功能:二進位製取反
// //輸入:const unsigned char *src 二進位制資料
// int length 待轉換的二進位制資料長度
// //輸出:unsigned char *dst 取反後的二進位制資料
// //返回:0 success
// //
int convert(unsigned char *dst, const unsigned char *src, int length)
return 0;
}//
// //功能:十六進製制轉為十進位制
// //輸入:const unsigned char *hex 待轉換的十六進製制資料
// int length 十六進製制資料長度
// //輸出:
// //返回:int rslt 轉換後的十進位制資料
// //思路:十六進製制每個字元位所表示的十進位制數的範圍是0 ~255,進製為256
// 左移8位(<<8)等價乘以256
// /
unsigned long hextodec(const unsigned char *hex, int length)
return rslt; }/
// //功能:十進位制轉十六進製制
// //輸入:int dec 待轉換的十進位制資料
// int length 轉換後的十六進製制資料長度
// //輸出:unsigned char *hex 轉換後的十六進製制資料
// //返回:0 success
// //思路:原理同十六進製制轉十進位制
// int dectohex(int dec, unsigned char *hex, int length)
return 0; }/
// //功能:求權
// //輸入:int base 進製基數
// int times 權級數
// //輸出:
// //返回:unsigned long 當前資料位的權
// //
unsigned long power(int base, int times)
/ //
//功能:bcd轉10進製
// //輸入:const unsigned char *bcd 待轉換的bcd碼
// int length bcd碼資料長度
// //輸出:
// //返回:unsigned long 當前資料位的權
// //思路:壓縮bcd碼乙個字元所表示的十進位制資料範圍為0 ~ 99,進製為100
// 先求每個字元所表示的十進位制值,然後乘以權
// unsigned long bcdtodec(const unsigned char *bcd, int length)
return dec; }/
// //功能:十進位制轉bcd碼
// //輸入:int dec 待轉換的十進位制資料
// int length bcd碼資料長度
// //輸出:unsigned char *bcd 轉換後的bcd碼
// //返回:0 success
// //思路:原理同bcd碼轉十進位制
// //
int dectobcd(int dec, unsigned char *bcd, int length)
return 0;
}int main()
; unsigned long dec_hex = 0;
dec_hex = hextodec(hex, 4);
printf("dec_hex = %d\n", dec_hex);
//十進位制轉十六進製制
dectohex(dec_hex, tmp_bff, 4);
for(i=0; i<5; i++)
//bcd碼轉十進位制
unsigned long dec_bcd = 0;
unsigned char bcd[4] = ;
dec_bcd = bcdtodec(bcd, 4);
printf("dec_bcd = %d\n", dec_bcd);
//十進位制轉bcd碼
dectobcd(dec_bcd, tmp_bff, 4);
for(i=0; i<5; i++)
getchar();
}bcd
void bcdtochar(const unsigned char *src,unsigned int srclen, unsigned char *dest)
;unsigned char temp2[1] = ;
for(int i=0; i
}
BCD碼 十六進製制 十進位制 互轉
include include 功能 二進位製取反 輸入 const unsigned char src 二進位制資料 int length 待轉換的二進位制資料長度 輸出 unsigned char dst 取反後的二進位制資料 返回 0 success int convert unsigned ...
BCD碼 十六進製制與十進位制互轉
在做嵌入式軟體的設計中,經常會遇到十六進製制 bcd碼與十進位制之間的轉換,最近做m1卡的應用中,涉及了大量的十六進製制 bcd碼與十進位制之間的轉換。筆者通過對bcd碼 十六進製制 權的理解,輕鬆的實現了他們之間的互換。include include 功能 二進位製取反 輸入 const unsi...
BCD碼 十六進製制與十進位制互轉
在做嵌入式軟體的設計中,經常會遇到十六進製制 bcd碼與十進位制之間的轉換,最近做m1卡的應用中,涉及了大量的十六進製制 bcd碼與十進位制之間的轉換。筆者通過對bcd碼 十六進製制 權的理解,輕鬆的實現了他們之間的互換。include include 功能 二進位製取反 輸入 const unsi...