将十进制转换为十六进制,找不到我的逻辑错误
Convert decimal to hex, can't find my logic error
我是C++和编码的新手。 我知道有逻辑错误,但我无法识别它。 我正在尝试输入一个小数,并将输出连接为十六进制。 它似乎只运行循环一次,即使控制变量显然还不是 0。
int main()
{
long rem = 0,
int hex = 0;
cout << "enter the number to convert ";
cin >> rem;
hex = rem / 16;
while (rem > 0)
{
rem = rem % 16;
hex = hex + rem;
cout << hex << "" << rem << endl;
rem = rem / 16;
}
return 0;
}
如果您需要做的就是以十六进制输出值,则可以使用 std::hex
格式标志。例如:
long rem = 16;
std::cout << std::hex << rem << std::endl; //prints 10
现场演示
#include <iostream>
using namespace std;
int main() {
// you have to declare variable independently when you declare different type variable
long rem = 0; // you typed (,)
int hex = 0;
cout << "enter the number to convert ";
cin >> rem;
hex = rem / 16;
while (rem > 0)
{
rem = rem % 16; // after this, rem is lower then 16 (remain operator)
hex = hex + rem;
cout << hex << "" << rem << endl;
rem = rem / 16; // so rem must be 0 because rem is lower then 16
}
return 0;
}
实际上,即使我解决了您的问题,您的代码也无法正常工作,但这就是您的循环仅运行 1 次的原因。
相关文章:
- C++:处理错误,看不懂我的错误
- 我用C++做了一个计算器,但我对"type of calculator"的要求循环了两次。有人可以帮助指出我的错误吗?
- 我不明白我的错误需要返回一个指针数组
- 我在 c++ 中的 AES 代码有问题。明文正在更改,但加密邮件是相同的。我找不到我的错误
- 这是 Clang 的错误还是我的错误?
- [堆栈][列表]我无法理解我的错误
- 检查我的 C++ 代码!我的cmd屏幕在运行后关闭!我的错误可能是什么
- 在C 中继承类功能:一般问题,以更好地理解,如果有人可以指出我的错误
- 我正在尝试学习使用 SDL 制作游戏。我的书教SDL1.2.3,我无法让它在Visual Studio上工作。谁能帮忙?我的错误:
- 马洛克或我的错误
- 我正在尝试遍历 20x20 网格并计算产品,但总是得到不正确的结果。你能帮忙发现我的错误吗?
- C++自动问题还是我的错误?
- 这是标准库错误,还是我的错误
- while 循环的两个条件。我的错误是什么?
- 我的错误,还是英特尔编译器的错误?非静态成员错误的大小
- 将每个单词的第一个字符大写-帮助查找我的错误
- 是什么导致了我的错误?我试图创建一个球员类和存储球员的名字作为一个变量
- 如何解决我的错误LNK2019
- 找不到我的错误!错误:"("标记之前的预期标识符
- 找不到我的错误 - 抽象错误