C++之进制转换

一、十进制,八进制,十六进制间相互转换

C 语言中8进制,10进制,16进制可以使用其相应的占位符输入或输出。

有符号十进制整数:%d,

无符号八进制整数:%o,

使用十六进制数字0f的无符号十六进制整数:%x,

使用十六进制数字0f的无符号十六进制整数:%X。

例子如下:

#include <iostream>

using namespace std;

int main()
{
    int num;
    //读入一个十进制数
    scanf_s("%d", &num);
    //输出八进制形式
    printf("%o\n", num);
    //输出十进制形式
    printf("%d\n", num);
    //输出十六进制形式
    printf("%x\n", num);

    int num2;
    //读入一个八进制数
    scanf_s("%o", &num2);
    printf("%o\n", num2);
    printf("%d\n", num2);
    printf("%x\n", num2);

    return 0;
}

二、十进制转换为任意其他进制

#include <iostream>

using namespace std;

//进制转换函数,转换为几进制N就是几
void Trans(int num, int N) {
    if (num > N - 1) {
        Trans(num / N, N);
    }
    cout << num % N;
}

int main()
{
    int num;
    cin >> num;
    //将num转换为5进制输出
    Trans(num, 5);
    cout << endl;

        return 0;
  }

猜你喜欢

转载自www.cnblogs.com/skyeisgood/p/12511698.html