進制轉換
相信你知道2進制,16進制吧?是否聽說過7進制呢?或者9進制?
五進制、10進制轉2進制是挺簡單的,那么轉其他進制呢?
沒錯,右側的代碼實現10進制數到任意進制(2~9)的轉換,試試修改吧~
修改后,你就明白10進制轉任意進制的基本思路了,加油。
16進制、?
樣例輸入
10 2
樣例輸出
1010
126十進制轉十六進制,?
問題鏈接:JSK-127 進制轉換
問題描述:(略)
126十進制轉換為八進制?問題分析:
? 這個題是有關進制轉換的問題。
? 一般,原有進制的值先轉換為10進制整數(多是補碼表示)m,然后再用k模除m,從整數中取出k進制的最低位,再將m按k進制右移1位,重復這個過程直到m變為0為止。然而得到的字符串是逆序的,需要反轉輸出。
程序說明:
? 在原有模板程序的基礎上,只修改了第10行和第13行。
? 第10行改為模除(%)。
? 第13行改了循環變量i的初值設置,因為8-12行的循環中,按照循環語句的運行順序,循環體內語句運行完后,就先做i++,然后再判循環結束條件,所以i的初值需要減1。
? 另外,第13行的循環結束條件也需要修改,最低位被放入數組a[]下標為0的元素中,所以要輸出到下標0為止。
參考鏈接:(略)
題記:進制有關的問題是程序設計中常見的問題。
?
AC的C++語言程序如下:
#include <iostream>
using namespace std;
const int N = 1024;void trans(int m, int k)
{//請在這個函數里面修改你的代碼int a[N], i;for(i = 0; m; i++){a[i] = m % k;m /= k;}for(i--; i >= 0; i--)cout<<a[i];
}int main()
{int m, k;cin>>m>>k;trans(m, k);cout<<endl;return 0;
}
?
原有模板的C++語言程序如下:
#include <iostream>
using namespace std;
const int N = 1024;void trans(int m, int k)
{//請在這個函數里面修改你的代碼int a[N], i;for(i = 0; m; i++){a[i] = m / k;m /= k;}for(;i;i--)cout<<a[i];
}int main()
{int m, k;cin>>m>>k;trans(m, k);cout<<endl;return 0;
}
?
?
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态