将非负十进制整数n转换成b进制,任何一个正整数都可以用2的幂次方表示

将非负十进制整数n转换成b进制。(其中b=2~16)

 

算法思路:

使用字符数组存储每一位的元素,将整数num每次%b 就能得到当前位置上的b进制数,然后将num/b,再次进入函数递归调用,num==0时作为递归出口,我用了show()直接跳到另一个函数来结束递归调用。

 

//递归调用

void Transfer(int num /*要转换数*/, int b/*转换的进制*/, char last[]/*字符串*/, int unit/**/){
	if (num == 0){
		show(last, unit);
	}
	else{
		int bite = num % b;
		char bit = '0';
		if (bite > 9){
			bit = 'A' + (bite - 10);
			last[unit] = bit;
		}
		else{
			last[unit] = '0' + bite;
		}
		num /= b;
		unit++;
		Transfer(num, b, last, unit);
	}



}

//非递归
void unTransfer(int num /*要转换数*/, int b/*转换的进制*/, char last[]/*字符串*/){
	int bite;
	char bit;
	int i;
	for (i = 0; num != 0; i++){
		bite = num % b;
		if (bite > 9){
			last[i] = &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值