strtoll函數(shù)怎樣處理不同進(jìn)制數(shù)

c++
小樊
82
2024-09-15 16:23:24
欄目: 編程語言

strtoll 函數(shù)是一個(gè) C 語言庫函數(shù),用于將字符串轉(zhuǎn)換為長(zhǎng)整型(long long)數(shù)值

#include <stdlib.h>

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

參數(shù)說明:

  • nptr:指向要轉(zhuǎn)換的字符串的指針。
  • endptr:如果不為 NULL,則在轉(zhuǎn)換完成后,將指向字符串中未被轉(zhuǎn)換的第一個(gè)字符的指針存儲(chǔ)在 endptr 指向的位置。
  • base:表示要解析的數(shù)字的基數(shù)。它必須介于 2 到 36(包含)之間,或者為 0。當(dāng) base 為 0 時(shí),函數(shù)會(huì)根據(jù)字符串的前綴來確定基數(shù):如果字符串以 “0x” 或 “0X” 開頭,則基數(shù)為 16;如果字符串以 “0” 開頭,則基數(shù)為 8;否則,基數(shù)為 10。

strtoll 函數(shù)會(huì)根據(jù)給定的 base 參數(shù)來處理不同進(jìn)制的數(shù)。例如:

#include<stdio.h>
#include <stdlib.h>

int main() {
    const char *number_str = "1010";
    char *endptr;
    int base = 2; // 二進(jìn)制

    long long number = strtoll(number_str, &endptr, base);

    printf("The decimal value of the binary number %s is: %lld\n", number_str, number);

    return 0;
}

在這個(gè)示例中,我們將二進(jìn)制數(shù) “1010”(十進(jìn)制的 10)轉(zhuǎn)換為長(zhǎng)整型數(shù)值。通過設(shè)置 base 參數(shù)為 2,strtoll 函數(shù)會(huì)正確地解析二進(jìn)制數(shù)。

0