首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >二进制数和十进制数之间的转换

二进制数和十进制数之间的转换
EN

Stack Overflow用户
提问于 2012-10-30 22:48:21
回答 2查看 737关注 0票数 0

我想问,在这段将二进制数转换为十进制数的代码中,bin-'0'是什么意思?谢谢。

代码语言:javascript
复制
#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;
}
EN

回答 2

Stack Overflow用户

发布于 2012-10-30 22:50:09

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

票数 4
EN

Stack Overflow用户

发布于 2012-10-30 22:51:41

这段代码利用了这样一个事实,即C++字符实际上只是特殊的int。它使用getchar接受一个'0‘或'1’的字符。现在它需要将其转换为0或1(请注意,这些是数字,而不是字符)。假设char '0‘是' 1’之前的一个字符,从两者中减去char '0‘的值会把'0’变成0,把'1‘变成1。

代码语言:javascript
复制
'0' - '0' = 0
'1' - '0' = 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13141542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档