python中怎样设计程序将一个十进制数转化为任意进制(2-16进制)的数?并输出(带有A,B,C,D,E,F之类的

供稿:hz-xin.com     日期:2025-01-14
设计一程序,实现将任意一个十进制整数转换为2-16进制中任何一种进制的数。

#include
void convert(unsigned int n, unsigned int base, char result[])
{
char *d="0123456789ABCDEF", *p, c;
int i=0;
while(n>0){
result[i++] = d[n%base];
n /= base;
}
if(i==0) result[i++]='0';
result[i] = '\0';
p = result+i-1;
while(result<p)
c=*result, *result++=*p, *p--=c;
}
int main()
{
char a[100];
convert(50, 2, a);/*把50转换成2进制保存在a中*/
printf("%s
", a);
convert(50, 16, a);/*把50转换成16进制保存在a中*/
printf("%s
", a);
return 0;
}

抱歉,只会C++,希望下面的代码对你有所帮助:
// 将进制数转换为任意进制数(基介于2和16之间)
#include
#include
#include
using namespace std;

string dec2base( int, int );

int main()
{
int number, base;
char label = 'y';
string str;
do
{
cout << "Please enter a number and a base you want to change: ";
cin >> number >> base;
str = dec2base( number, base );
for( int i = 0; i < str.length(); i++ )
cout << str[ i ];

cout << "

If you want to try again, press y to continue, others to end: ";
cin >> label;
cout << endl;
} while( label == 'y' );

return 0;
}

string dec2base( int num, int base )
{
// digitChar为字库字符串,numStr为用于存储输出字符串
string digitChar = "0123456789ABCDEF", numStr = "";
// 用于临时存储输出的堆栈
stack stk;

// 求余直至余数为零
do
{
// 将余数压入堆栈
stk.push( digitChar[ num % base ] );
num /= base;
} while( num != 0 );

// 将余数堆栈出栈并附到结果字符串中
while( !stk.empty() )
{
numStr += stk.top();
stk.pop();
}
return numStr;
}

根据一般方法,N进制转10进制使用位权展开法,10进制转N进制使用求余数法。

就是不断用待转换数除以N然后求余数,最后把所有余数倒着放一起。

例子:

将24转换为2进制:

原数 进制 余数


24  % 2 -> 0

12  % 2 -> 0

6    % 2 -> 0

3    % 2 -> 1

1    % 2 -> 1

从下往上看:(11000)2,就是24的二进制

所以……上代码。


letters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'  # 从0~10~Z的字母表,最高支持36进制

num = 82493216  # 要转换的数

sy = 13  # 要转换到的进制

li = []  # 用来保存求余数后的值

while num/sy>0:  # 如果num/sy大于0,即还没有转换完

    li.append(num%sy)  # 存储一个余数

    num //= sy  # 除掉

li.reverse()  # 倒转

for x in li:

    print(letters[x], end="")  # 输出对应的字母,不换行



Python编写程序,计算10-n之间包括十和n,个位数不是5的所有整数之和,n...
print("10到{}之间包括10和{},个位数不是5的所有整数之和为:{}".format(n, n, sum_of_integers))```程序首先读取用户输入的n的值,并将其转换为整数。如果n小于10,则提示用户重新输入n的值;否则使用一个循环遍历10到n之间的所有整数,如果整数的个位数不是5,则将其累加到`sum_of_...

编写一个程序,求1到10之间所有偶数的和及其所有奇数的和
以python语言为例:!\/usr\/bin\/env python -*- coding: utf-8 -*- 编写一个程序,求1到10之间所有偶数的和及其所有奇数的和 sum_1 = 0 sum_2 = 0 for i in range(1,11):if (i % 2==0):sum_2=sum_2+i else:sum_1=sum_1+i print "奇数和是%d" % sum_1 print "偶数和是...

用python编写一个程序,输入一个数字这个数字除以四的余数是几就打印出...
可以使用 Python 的 input 函数和 for 循环语句来实现这个程序。具体代码如下:num = int(input("请输入一个数字:"))remainder = num % 4 for i in range(remainder):print("*")代码中,首先使用 input 函数获取用户输入的数字,并将它转换成整数类型。然后,计算这个数字除以 4 的余数,并将...

用python+编写一个程序,打印出执行1+1运行100次的时间?
import time 获取开始时间 start = time.time()执行1+1运算100次 for i in range(100): a = 1 + 1 获取结束时间 end = time.time()计算两个时间差 print("1+1运算100次程序的运行时间为:", end - start)

随机产生一个3位整数,将他的十位数变为0的python怎么做?
100+ge_weiprint(“输入的数字是:{}”。format(x))print(“十位变为0后的数字是:{}”。format(y))if__name__==“__main__”:print(“输入三位数:”)n=int(input())three_digit_number(n)。python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于...

python中编写一个模块,模块中包含随机生成N个元素的列表、排序列表、求...
下面是一个 Python 模块的例子,它包含了随机生成 N 个元素的列表、排序列表、求最大值三个功能:这个模块中的三个函数可以用来随机生成 N 个元素的列表、对列表进行排序、求出列表中的最大值。使用这个模块的方法是,在其他程序中用 import 语句导入这个模块,然后调用模块中的函数,例如:这样,就...

给出一个十进制正整数 n,按从大到小的顺序输出其中包含的数字。重复出...
给出一个十进制正整数n,按从大到小的顺序输出其中包含的数字。重复出现的数仅输出一次。循环概念:循环是程序设计语言中反复执行某些代码的一种计算机处理过程。在编程中,循环是一种重要的控制结构,用于重复执行某些操作,直到满足特定的条件。循环由循环入口、循环条件和循环体组成。根据条件的不同,循环...

写一个程序,要求用户输入3位数的数字,最后舍去各位数输出,python?
方法很多比如 s = input('请输入一个3位数\\n')s1 = int(s[:-1] + '0')s2 = int(s) \/\/ 10 *10 print(s1)print(s2)s1,s2分别用了不同的办法

输入一个两位数整数,输出其个位和十位.用程序说话
直接获取两位数整数的个位和十位信息,Python提供了一种简便的方法。以下是实现步骤的直观描述:首先,打开电脑上的命令行工具,例如Windows用户可以使用PowerShell。在终端中,你将进行编程操作。进入Python环境,例如使用IPython,你可以创建一个两位数的整数变量,例如a = 12,以进行后续操作。注意,这里的...

Python设计:编写程序随机产生一个20-30之间的整数,计算20-30之间所有...
import randomm = random.randint(20, 30)for i in range(2, int(m ** (1 \/ 2)) + 1): if m % i == 0: print(f'{m}不是素数') breakelse: print(f'{m}是素数')程序缩进如图所示 ...