1. 程式人生 > >藍橋杯BASIC-10 基礎練習 十進位制轉十六進位制

藍橋杯BASIC-10 基礎練習 十進位制轉十六進位制

問題描述

  十六進位制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16個符號,分別表示十進位制數的0至15。十六進位制的計數方法是滿16進1,所以十進位制數16在十六進位制中是10,而十進位制的17在十六進位制中是11,以此類推,十進位制的30在十六進位制中是1E。
  給出一個非負整數,將它表示成十六進位制的形式。

輸入格式

  輸入包含一個非負整數a,表示要轉換的數。0<=a<=2147483647

輸出格式

  輸出這個整數的16進製表示

樣例輸入

30

樣例輸出

1E

思路:這裡有關於各種進位制轉換的詳解:

開啟連結

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm> 
using namespace std;
typedef long long ll;
int main()
{
	char a[10],b[17]="0123456789ABCDEF";
	ll m,n;
	scanf("%lld",&m);
	n=m;
	int i=0;
	while(n)
	{
		a[i++] = b[n%16];
		n /= 16;
	}
	//a[i]=b[n%16];
	i-=1;
	while(i>=0)
	{
		printf("%c",a[i--]);
	}
	if(m==0)
		printf("0");
	printf("\n");
	//printf("%s\n",b);
	return 0;
}