日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

01:数制转换

發布時間:2023/11/29 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 01:数制转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

01:數制轉換

  • 查看
  • 提交
  • 統計
  • 提問
總時間限制:?
1000ms
內存限制:?
65536kB
描述

求任意兩個不同進制非負整數的轉換(2進制~16進制),所給整數在long所能表達的范圍之內。
不同進制的表示符號為(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。

輸入
輸入只有一行,包含三個整數a,n,b。a表示其后的n 是a進制整數,b表示欲將a進制整數n轉換成b進制整數。
a,b是十進制整數,2 =< a,b <= 16。
輸出
輸出包含一行,該行有一個整數為轉換后的b進制數。輸出時字母符號全部用大寫表示,即(0,1,...,9,A,B,...,F)。
樣例輸入
15 Aab3 7
樣例輸出
210306
來源
2005~2006醫學部計算概論期末考試
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 using namespace std; 6 char a[10001]; 7 int b[10001]; 8 int now; 9 int tot; 10 int n;//未被轉化的進制 11 int m;//需要轉換的進制 12 int da[10001]; 13 char w[20]={'A','B','C','D','E','F'}; 14 int main() 15 { 16 cin>>n; 17 scanf("%s",&a); 18 19 cin>>m; 20 int l=strlen(a); 21 if(a[0]=='0'&&l==1) 22 { 23 cout<<"0"; 24 return 0; 25 } 26 for(int i=0;i<l;i++) 27 { 28 if(a[i]>=97&&a[i]<=122) 29 { 30 a[i]=a[i]-32; 31 } 32 if(a[i]>=49&&a[i]<=57) 33 { 34 b[i]=a[i]-48; 35 } 36 else if(a[i]>=65&&a[i]<=90) 37 { 38 b[i]=a[i]-55; 39 } 40 } 41 int ans=0; 42 int now=0; 43 for(int i=l-1;i>=0;i--) 44 { 45 ans=ans+b[i]*(pow(n,now)); 46 now++; 47 } 48 int now2=1; 49 while(ans!=0) 50 { 51 int r=ans%m; 52 b[now2]=r; 53 ans=ans/m; 54 now2++; 55 } 56 for(int i=now2-1;i>=1;i--) 57 { 58 if(b[i]<10) 59 cout<<b[i]; 60 else 61 { 62 int k=b[i]-10; 63 cout<<w[k]; 64 } 65 } 66 /*for(int i=now2;i>=0;i--) 67 cout<<da[i];*/ 68 return 0; 69 }

要注意考慮a是0的情況

總結

以上是生活随笔為你收集整理的01:数制转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。