進位轉換練習題兩道

來源:互聯網
上載者:User

題目均來自九度,北大的研究生機試題

題目1118:數制轉換

題目描述:

    求任意兩個不同進位非負整數的轉換(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
提示:

可以用字串表示不同進位的整數。

#include <stdio.h>char str[100];int a,b;int num,tmp,i;int main() {while(scanf("%d%s %d", &a, str, &b) != EOF){num = 0;for(i=0; str[i]; i++){if(str[i] >= 'a') str[i] -= 32;tmp = (str[i] >= 'A' ? str[i]-'A'+10:str[i]-'0');//tmp = str[i]num = num * a + tmp;}int cnt=0;if(num == 0){puts("0"); continue;}while(num){if(num%b <=9)str[cnt++] = num%b+'0';elsestr[cnt++] = num%b-10+'A';num = num/b;}for(i=cnt-1; i>=0; i--)printf("%c",str[i]);puts("");}return 0;}

題目1138:進位轉換

題目描述:

將一個長度最多為30位元字的十進位非負整數轉換為位元輸出。

輸入:

多組資料,每行為一個長度不超過30位的十進位非負整數。
(注意是10進位數位個數可能有30個,而非30bits的整數)

輸出:

每行輸出對應的位元。

範例輸入:
0138
範例輸出:
01111000

#include <stdio.h>#include <iostream>using namespace std;char str[40],ans[200];int nums[40],n,len;int main() {    while(~scanf("%s",str)){        n=0;        for(n=0; str[n];n++) nums[n] = str[n]-'0';        int d;        len = 0;        int start = 0,tmp;        while(start < n){            d = 0; //借位            ans[len++] = nums[n-1]%2 +'0';            //cout << nums[0] << "" << nums[1] << endl;            for(int i=start; i<n; i++){                tmp = nums[i];                nums[i] = (nums[i]+d) / 2;                if(tmp & 1) d=10;                else d=0;            }            if(nums[start] == 0) start++;        }        for(int i=len-1; i>=0; i--)            printf("%c",ans[i]);        puts("");    }    return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.