今天看到雅虎一道面試題,竟然是一道進製轉換的題,並且還不允許用printf()自帶的函式庫來做,所以就整理一下,以備不時之需;
十進位制轉換為其他進製:(十進位制轉換為其他進製可使用printf函式直接轉換 庫函式使用:
(1)十進位制轉化為八進位制
使用庫函式
int main()
自己**:(遞迴方法)
#include #include #include using namespace std;
string str="";
string fun(int n)
return str;
}int main()
(2)十進位制轉十六進製制
使用庫函式
int main()
自己**:
採用的遞迴方法
#include #include #include using namespace std;
string str="";
char exchenge(int n)
string fun(int n)
return str;
}int main()
(二)其他進製轉十進位制
(1)八進位制轉十進位制:
#include #include using namespace std;
int main()
(2)十六進製制轉為十進位制(與上同)
#include #include using namespace std;
int main()
自己**:
#include #include #include #include using namespace std;
int main()
printf("%lld",ch_10);
return 0;
}
注:本**不完全正確,有一組測試資料沒有pass,為什麼?????
(三)其他進製轉化為其他進製
(1)十六進製制轉化為八進位制(資料比較小)(十六進製制---->十進位制---->八進位制)
#include #include #include #include using namespace std;
string str="";
string fun(int n)
return str;
}int _16to10(char ch)
int main()
{ int case;
scanf("%d",&case);
while(case--){
char ch[100005];
int n=0;
cin>>ch;
for(int i=0;i
資料較大時,需十六進製制---->二進位制------>八進位制
**:#include #include #include #include using namespace std;
char str[200005];
int main()
{ int case;
scanf("%d",&case);
while(case--){
string str_16;
string str_2="";
cin>>str_16;
//修正位
int str_16len=str_16.length();
if(str_16len%3==1)
str_2="00"+str_2;
if(str_16len%3==2)
str_2="0"+str_2;
//16進製制轉化為2進製
for( int i=0;i在做這道題的時候提交出過問題(+ 運算子),**
(2)八進位制轉化為16進製制(同上)
各種進製的轉換
請看這下面二段 10進製 2進製 string a 1195 輸入數值 biginteger src new biginteger a 轉換為biginteger型別 system.out.println src.tostring 2 轉換為2進製並輸出結果 2進製 10進製 string a 10...
各種進製的轉換
public class arrayt 十進位制轉換成十六進製制 public static void tohex int num 十進位制轉換成二進位制 public static void tobinary int num 十進位制轉換成八進位制 public static void tooct...
Python 各種進製轉換
coding gbk var input 請輸入十六進製制數 b bin int var,16 print b 2 詳細請參考python自帶int函式 bin函式用法 參考 class int x,base 10 bin x 十六進製制 到 十進位制 使用 int 函式 第乙個引數是字串 0xff...