9-基础练习 十进制转十六进制

                基础练习 十进制转十六进制

时间限制: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

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		String[] two = {
				"0", "1", "2", "3",
				"4", "5", "6", "7",
				"8", "9", "A", "B",
				"C", "D", "E", "F",
				};
		Scanner cin = new Scanner(System.in);
		long a = cin.nextLong();
		StringBuilder toTwo = new StringBuilder();
		if(a == 0) {
			System.out.println("0");
			return ;
		}
		while(a != 0) {
			toTwo.append(a % 2 + "");
			a = a / 2;
		}
		int len = toTwo.length();
//		String toTwo2 = toTwo.toString();
		if(len % 4 == 1) {
			toTwo.append("000");
		}
		else if(len % 4 == 2) {
			toTwo.append("00");
		}
		else if(len % 4 == 3) {
			toTwo.append("0");
		}
		len = toTwo.length();
		StringBuilder ans = new StringBuilder();
		for(int i = 0; i < len - 3; i += 4) {
			int t = (toTwo.charAt(i) - ‘0‘) * 1 + (toTwo.charAt(i+1) - ‘0‘) * 2 +
					(toTwo.charAt(i+2) - ‘0‘) * 4 + (toTwo.charAt(i+3) - ‘0‘) * 8;
			ans.append(two[t]);
		}
		System.out.println(ans.reverse());
	}
}

  

原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/10347317.html

时间: 2024-11-10 17:55:28

9-基础练习 十进制转十六进制的相关文章

蓝桥杯软件大赛练习系统——基础练习 十进制转十六进制

问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有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进制表示 样例输入

蓝桥杯 基础练习 十进制转十六进制

基础练习 十进制转十六进制 时间限制: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<

【蓝桥杯】基础练习 十进制转十六进制

基础练习 十进制转十六进制 时间限制: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<

蓝桥杯:基础练习 十进制转十六进制【JAVA算法实现】

题目描述 给出一个非负整数,将它表示成十六进制的形式. 输入格式 输入包含一个非负整数a,表示要转换的数.0<=a<=2147483647 输出格式 输出这个整数的16进制表示 实数输出的问题如果没有特别说明,舍入都是按四舍五入进行. 样例输入 30 样例输出 1E import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(Sy

基础练习 十进制转十六进制

------------------------------------------------------------------------------------------------------------------------ 因为范围是在int类型内的 所以完全可以用java自带的方法来实现 要注意一点toHexString方法返回的十六进制数中的字母是小写的 需要用toUpperCase方法转换成大写的 -------------------------------------

python中各种基础类型的转换,二进制,八进制,十进制,十六进制

python中所有类型都是作为对象的形式来存在的. 在python中没有char型,只有字符串类型,这样我们可能将char型转换为整型时极不方便,但是python已经提供了这些转换的内置函数. python 中除了整型,其他进制的只能用字符串来表示 1 int() 可以将 二进制,八进制,十六进制转换成十进制整型 >>> int('1111', 2) 15 >>> int('f', 16) 15 >>> int('17', 8) 15 2 chr()

汇编基础:二进制和十六进制

理解二进制和十六进制的最佳方法是先透彻的领悟十进制计数系统.十进制(Decimal)系统是基于10的计数系统(词根Deci-表示10)."基于10"指的是由10个数位(Digit)0到9来表示数. 使用"位置(Place Value)",可以用不多的几个数位(如10个十进制数位)来表示很大的数.所有计数系统的位置从最右边开始,是基数的0次幂.从右往左,基数的幂依次增加1: X4X3X2X1X0 基数是10时,前5个位值是: 104103102101100 对任何基数

Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换

public class DigitalTrans { /** * 数字字符串转ASCII码字符串 * * @param String * 字符串 * @return ASCII字符串 */ public static String StringToAsciiString(String content) { String result = ""; int max = content.length(); for (int i = 0; i < max; i++) { char c

二进制、八进制、十进制、十六进制之间的转换

  最近复习软考各种进制之间的转换着实让人头疼,今天把常用的几种进制之间的转换问题简单做个总结,希望能够对大家有所帮助.   二进制八进制之间的转换   二进制与八进制之间的关系式每个八进制位对应三个二进制位,详情如下:   八进制:  0    1     2    3     4    5     6    7       二进制:000 001 010 011 100 101 110 111   实例:   27.651(8)  010111.110101001(2)   1001.000