簡體   English   中英

C:將二進制轉換為十進制

[英]C : converting binary to decimal

是否有用於將二進制值轉換為十進制值的專用功能。 例如(1111至15),(0011至3)。

提前致謝

是的, strtol函數具有可用於此目的的base參數。

這是一些基本錯誤處理的示例:

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


int main()
{
    char* input = "11001";
    char* endptr;

    int val = strtol(input, &endptr, 2);

    if (*endptr == '\0')
    {
        printf("Got only the integer: %d\n", val);
    }
    else
    {
        printf("Got an integer %d\n", val);
        printf("Leftover: %s\n", endptr);
    }


    return 0;
}

這樣可以正確解析並打印整數25(二進制為11001 )。 strtol的錯誤處理允許在無法將字符串的某些部分解析為所需基數中的整數時發出通知。 您想通過閱讀上面鏈接到的參考文獻來了解更多信息。

使用strtol對其進行解析,然后使用printf函數之一將其轉換為字符串。 例如

char binary[] = "111";
long l = strtol(binary, 0, 2);
char *s = malloc(sizeof binary);
sprintf(s, "%ld\n", l);

這會分配比所需更多的空間。

暫無
暫無

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

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