字串轉換為16進製制

2022-10-11 08:06:11 字數 1201 閱讀 4178

問題

將乙個字串轉換為16進製制數,例如「12」轉換為0x12, "12345678"轉換為0x12345678。

注意: 轉換前每乙個字元占用乙個位元組,轉換後兩個數字占用乙個位元組,如「12345678"占用8個位元組,轉換後占用四個位元組:0x12, 0x34, 0x56, x078.

實現

#include

#include

intchar2bcd

(char str,

unsigned

char

*value)if(

isdigit

(str)

)elseif(

islower

(str)

)elseif(

isupper

(str)

)else

return0;

}int

getvaluefromstr

(char

*string,

unsigned

int length,

unsigned

char

*value)

//*value = 0;

if(length%2)

value[0]

= p;

for( i =

1;i<

((length+1)

>>1)

; i++

) ret =

char2bcd

(string[

2*i]

,&q);if

(ret <0)

//*value = (*value << 8) + (p << 4) + q;

value[i]

=(p <<4)

+ q;}}

else

ret =

char2bcd

(string[

2*i +1]

,&q);if

(ret <0)

//*value = (*value << 8) + (p << 4) + q;

value[i]

=(p <<4)

+ q;}}

return0;

}

16進製制字串轉換為位元組

最近在專案中遇到乙個小問題,記錄下來以備後用。語句 string str1 2a byte b1 convert.tobyte strmd51 錯誤資訊 輸入字串的格式不正確。解決方式 byte b1 convert.tobyte strmd51,16 函式解釋 摘要 將指定基數的數字的 syste...

python中16進製制字串轉換為對應二進位製流

寫 時遇到了乙個問題 獲得乙個16進製表示的字串,它的type是str,我們又不能在它的前面直接加b,如何將其轉換為對應二進位製流呢?後來找到了解決辦法,主要是使用eval函式。s xe5 xa4 xa7 xe4 xb9 x94 或 s r xe5 xa4 xa7 xe4 xb9 x94 print...

16進製制與字串轉換

字串為 string 型別並可寫成兩種形式,即用引號引起來和用 引起來。用引號引起來的字串括在雙引號 內 good morning a string literal 並且可以包含包括換碼序列在內的任何字元 string a u0066 n backslash,letter f,new line 注意...