c++ - 十进制转十六进制,找不到我的逻辑错误

标签 c++

我是 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

Live Demo

关于c++ - 十进制转十六进制,找不到我的逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29552891/

相关文章:

c++ - C++ 03中最接近浮点值的整数

c++ - #include <string> 在 header 中定义了一些结构。错误 : string does not define a type

c++ - 为什么我在使用 for 循环和 cout 命令时没有打印出 vector

c++ - 快速搜索以查找事件范围

c++ - RAND_MAX 的值总是 (2^n)-1 吗?

android - 没有适用于 Android 的 Qt 控件样式吗?

c++ - 通过引用 TBB 任务传递函数时无法返回值

c++ - 将 CSV 中的二维数组读入 Map c++

c++ - 具有多个参数包的 Variadic 模板构造函数

c++ - lua_register C++ 的问题