我正在使用基本的switch-case语句将4digit二进制转换为单个数字十六进制,并且由于某种原因代码将不会为数字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;
...
}
}
Run Code Online (Sandbox Code Playgroud)
所有数字0,1,8-15都可以正常工作,但中间数字却没有.关于什么可能导致这个错误输出/不运行的任何想法?
这个案例:
case 0010: cout<<"Hex: 2\n"; break;
Run Code Online (Sandbox Code Playgroud)
不会开火binin == 10.它会开火binin == 8,因为0010是八进制文字.只需删除前导0s,以便将值解释为十进制文字.
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |