c++ - 二进制数与十进制数的转换

标签 c++ binary decimal

请问,这段二进制转十进制的代码中bin-'0'是什么意思?谢谢。

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

int main(){
    char bin;
    int dec = 0;

    printf("Binary: \n");
    bin = getchar();

    while((bin != '\n')){
        if((bin != '0') && (bin != '1')){
            printf("Wrong!\n");
            return 0;
        }
        printf("%c",bin-'0');  // ?

        dec = dec*2+(bin-'0'); // ?
        bin = getchar();
    }

    printf("Decimal: %d\n", dec);

    return 0;
}

最佳答案

bin - '0' 将 bin 的 ASCII 值转换为其整数值。给定 bin = '1'bin - '0' = 1

关于c++ - 二进制数与十进制数的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13141542/

相关文章:

c++ - 将小数舍入为 2 位 C++ 之间的逻辑

python - 小数计算不准确

c++ - 存储一个函数c++,稍后调用

c++ - C/C++ : How to figure out the chain of header files for a given definition?

binary - 正数的补码表示法是同一个数吗?

java - 将 Java 字节数组转换为 Python 字节数组

十进制转十六进制的C++程序

c++ - Object obj = Object() 和 Object obj() 有什么区别?

c++ - 为什么我的 OpenMP 代码在不同环境下性能不同?

Javascript 二进制字符串,转十六进制,转base58,转回十六进制,转回字符串,随机错误