zoukankan      html  css  js  c++  java
  • 48-十进制转十六进制

          基础练习 十进制转十六进制  
    时间限制:1.0s   内存限制:512.0MB
          
    问题描述
      十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有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 <iostream> 
    #include <cstdio>
    #include <cstring>
    using namespace std;
    string str[16] = {"0000", "0001", "0010", "0011",
    				  "0100", "0101", "0110", "0111",
    				  "1000", "1001", "1010", "1011",
    				  "1100", "1101", "1110", "1111"};
    
    int main(){
    	string s0, s1;
    	long long a; 
    	cin >> a;
    	if(a == 0){  
    		printf("0
    ");		
    	}
    	else
    		while(a){
    			s0 += (a % 2 + '0');    //a的二进制存入s0 
    			a /= 2;
    			if(a == 1){
    				s0 += '1';    
    				break;
    			}
    		}
    	int len = s0.length();
    	if(len % 4 != 0){              //将a的二进制补齐,最后四个一个合并成十六进制 
    		for(int i = 0; i < 4 - (len % 4); i++)
    			s0 += '0';
    		len += (4 - (len % 4));
    	}
    	for(int i = 0; i < len; i += 4){ //合并成十六进制 
    		int sum = 0;
    		int k = 1;
    		for(int j = i; j < i + 4; j++){
    			sum += (s0[j] - '0') * k;
    			k *= 2;
    		}
    		if(sum < 10){
    			s1 += (sum + '0');
    		}
    		else{
    			s1 += ((sum - 10) + 'A');
    		}
    	}
    	for(int i = s1.length() - 1; i >= 0; i--)
    		cout << s1[i];
    //	cout << s0 << endl;
    //	cout << s1 << endl;
    	return 0;
    }
    

      

  • 相关阅读:
    0309. Best Time to Buy and Sell Stock with Cooldown (M)
    0621. Task Scheduler (M)
    0106. Construct Binary Tree from Inorder and Postorder Traversal (M)
    0258. Add Digits (E)
    0154. Find Minimum in Rotated Sorted Array II (H)
    0797. All Paths From Source to Target (M)
    0260. Single Number III (M)
    0072. Edit Distance (H)
    0103. Binary Tree Zigzag Level Order Traversal (M)
    0312. Burst Balloons (H)
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/8449172.html
Copyright © 2011-2022 走看看