僅突出運算,資料長度可根據需要擴充套件
在運算環境不支援long long時編寫
//****************************************
//== 函 數 名:bcd2hex
//== 功 能 :六個位元組的壓縮bcd碼轉換成十六進製制
//== 說 明 :適用於linux以及微控制器,vs環境待測試
//== 引數:bcd[6]:待轉換資料;hexa[8]:十六進製制
//****************************************=
int bcd2hexa( unsigned char bcd[6], unsigned char hexa[8])
;
unsigned char result[9] ;
unsigned char tmp;
int i ;
//將bcd碼轉成十進位制數存放在陣列中
for ( i = 0 ; i < 6; i ++ )
//位移 相當於取餘運算。例如: 27%16 == 11 —— 27 & 0xf
for( i = 0 ; i < 3 ; i ++ )
//位元組序倒置
for (i = 0; i < 4; i++)
memcpy(hexa,result,8);//結果是低位在前的順序陣列
return 0;
}
大數問題之26進製轉化
problem description xyz 26進製數是乙個每位都是大寫字母的數字。a b c x y z 分別依次代表乙個0 25 的數字,乙個 n 位的26進製數轉化成是10進製的規則如下 a0a1a2a3 an 1 的每一位代表的數字為a0a1a2a3 an 1 則該xyz 26進製數的1...
通過位運算實現數值交換
對於數值的交換操作,通常會採用第三個變數作為中間變數過渡的交換方式。temp a a b b temp 使用這種方法,可以保證交換的準確性,但是由於會使用第三個變數,占用了額外的記憶體空間。那麼有沒有辦法不借助第三個變數實現兩個數值的交換呢?可以通過數值相加寄存和位運算兩種方式。1 相加寄存 可以將...
php mysql通過位運算操作推薦位
position 字段設定為tinyint 假定 1代表首頁推薦 2代表欄目推薦 4代表內頁推薦 8代表其他推薦 那麼如果position 欄位的值為3就代表首頁推薦 欄目推薦 1 2 如果position 欄位的值為7代表首頁推薦 欄目推薦 內頁推薦 1 2 4 然後 position i pos...