簡體   English   中英

C(linux上的gcc):如何將十六進制字符串“0xfffffff”轉換為整數?

[英]C (gcc on linux): How do i convert a hex string “0xfffffff” to an integer?

C(linux上的gcc):如何將十六進制字符串“0xfffffff”轉換為整數?

 scanf("%x", &integer);
 sscanf("0xffffffff", "%x", &integer);

另一種,准便攜式的方式是strtol ,它的伙伴strtoulstrtollstrtoull 他們看着像是:

long
strtol(const char * restrict nptr, char ** restrict endptr, int base);

使用有點奇怪。 第一個參數是要轉換的字符串,第三個參數是base,對於hex,它將是16.第二個參數用於調試:它可以指向十六進制字符串中未能轉換的第一個字符。

好。 strtol做到了。

int main()
{
    char s[] = "0xf0f0";
    unsigned int x=0;

    x = strtol(s, NULL, 16);
    printf("s = %s and x = %u\n", s, x);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM