gpt4 book ai didi

c++ - 将二进制转换为十六进制 : error only on 2-7

转载 作者:行者123 更新时间:2023-11-30 01:13:27 25 4
gpt4 key购买 nike

我正在使用基本的 switch-case 语句将 4 位二进制数转换为一位十六进制数,并且出于某种原因代码不会运行数字 0010-0111,我不知道为什么。

这是我的:

void BinHex() {
int binin;
cout << "Enter Binary(####): " << endl;
cin >> binin;

switch(binin){
case 0000: cout << "Hex: 0" << endl; break;
case 0001: cout << "Hex: 1" << endl; break;
case 0010: cout << "Hex: 2" << endl; break;
...
}
}

所有数字 0、1、8-15 都可以正常工作,但中间的数字不能。关于可能导致此错误/无法运行的任何想法?

最佳答案

这个案例:

case 0010: cout<<"Hex: 2\n"; break;

不会为 binin == 10 触发。它会在 binin == 8 时触发,因为 0010 是一个 octal 文字。只需删除前导 0,这样该值就会被解释为十进制文字。

关于c++ - 将二进制转换为十六进制 : error only on 2-7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32096797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com