[英]Converting an ASCII number to a Hex number in C without using library functions
我想將 32 位 ASCII 數字(例如“FE257469”)轉換為等效的 32 位十六進制數字,該數字將存儲在 32 位變量中。 最重要的是,我想在不使用任何庫 function (如 sscanf()、atoi() 等)的情況下做到這一點。
有什么想法嗎?
預先感謝。
通常的方式是這樣的:
將結果初始化為 0
這是一個基於開關的 function 的實現:
unsigned int parseHex( char *str )
{
unsigned int value = 0;
for(;; ++str ) switch( *str )
{
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
value = value << 4 | *str & 0xf;
break;
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
value = value << 4 | 9 + *str & 0xf;
break;
default:
return value;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.