任意进制转换

简介: 任意进制转换
//群:970353786
#include "stdio.h"
#include<iostream>
using namespace std;
#define StackSize 100
typedef char ElemType;
typedef struct
{
    ElemType data[StackSize];
    int top;
}SqStack;
int trans(int d, int b, char string[])  //string用于存放转换后的字符串
{
    SqStack st;
    char ch;
    int r, i = 0;
    st.top = -1;      // 栈初始化
    if (b <= 1 || b > 36 || b == 10)  // 2≤b≤36且不为10
    {
        printf_s(" b is Error\n"); return 0;
    }
    while (d != 0)//辗转相除法
    {
        r = d % b; //求余数
        ch = r + (r < 10 ? '0' : 'A' - 10);  // 将余数转换为相应的字符
        st.top++;  st.data[st.top] = ch;   // 进栈
        d /= b;
    }
    while (st.top != -1)
    {
        string[i++] = st.data[st.top];   //将出栈的字符放入字符数组string
        st.top--;
    }
    string[i] = '\0';     //加入字符串结束标志
    return  1;
}
void main()
{
    while (1)
    {
        char str[10];
        int d, b, t;
        printf_s("请输入整数:");   //请输入待转换的整数
        scanf_s("%d", &d);
        printf("请输入要转换为几进制:"); // 请输入待转换的进制
        scanf_s("%d", &b);
        t = trans(d, b, str);          // 调用进制转换函数
        cout << "进制转换结果为:";
        if (t == 0) printf("Error!");
        else printf("%s\n", str);      // 输出转换结果字符串
    }
}
相关文章
|
C语言
C语言之将十进制整数转换为任意进制整数
C语言之将十进制整数转换为任意进制整数
237 0
创建定长的数字,进制之间转化,二进制,十进制 字符串
创建定长的数字,进制之间转化,二进制,十进制 字符串
|
7月前
两个方法实现 任意两个进制间相互转换
两个方法实现 任意两个进制间相互转换
30 0
两个方法实现 任意两个进制间相互转换
|
7月前
字符与数字的相互转换
字符与数字的相互转换
88 0
|
算法 Python
十进制与二进制的互换
十进制与二进制的互换
131 0
|
C语言
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
154 0
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
进制转换(二进制,八进制,十进制,十六进制)涵盖整数与小数部分,内容的图片全为手写【详细图解】
进制转换(二进制,八进制,十进制,十六进制)涵盖整数与小数部分,内容的图片全为手写【详细图解】
|
算法 C语言
10(可回看)【C语言 & 趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
10(可回看)【C语言 & 趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
10(可回看)【C语言 & 趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
【c++】关于数值进制以及进制之间转化
【c++】关于数值进制以及进制之间转化
202 0
【c++】关于数值进制以及进制之间转化