10进制转16进制

问题描述

  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有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.io.*;
class Main
{
	public static void main(String[] args)throws Exception
	{
		BufferedReader bf = new BufferedReader(
			new InputStreamReader(System.in));
		int a = Integer.parseInt(bf.readLine());
		String s = fun(a);
		System.out.println(s);
	}
	public static String fun(int i){
		String s = new String ("0123456789ABCDEF");
		char [] buf = new char[32];
		int charPos=32;
		int radix=1<<4;
		int mask = radix-1;
		do
		{
			buf[--charPos]=s.charAt(i&mask);
			i>>>=4;
		}
		while (i!=0);
		return new String(buf,charPos,(32-charPos));
	}
}

-----------

mport java.io.*;
class Main
{
	final static char[] digits = {
		'0' , '1' , '2' , '3' , '4' , '5' ,
		'6' , '7' , '8' , '9' , 'a' , 'b' ,
		'c' , 'd' , 'e' , 'f' , 'g' , 'h' ,
		'i' , 'j' , 'k' , 'l' , 'm' , 'n' ,
		'o' , 'p' , 'q' , 'r' , 's' , 't' ,
		'u' , 'v' , 'w' , 'x' , 'y' , 'z'
		};
	public static void main(String[] args)throws Exception
	{
		BufferedReader bf = new BufferedReader(
			new InputStreamReader(System.in));
		int a = Integer.parseInt(bf.readLine());
		String s = fun(a).toUpperCase();
		System.out.println(s);
	}
	public static String fun(int i){
		char [] buf = new char[32];
		int charPos=32;
		int radix=1<<4;
		int mask = radix-1;
		do
		{
			buf[--charPos]=digits[i & mask];
			i>>>=4;
		}
		while (i!=0);
		return new String(buf,charPos,(32-charPos));
	}
}
时间: 2024-08-19 11:25:13

10进制转16进制的相关文章

python中2进制、10进制、16进制等之间的转换

10转2: bin(8) # '0b1000' 2转10: int('1000', 2) # 8 10转16: hex(15) # '0xf' 16转10: int('f', 16) # 15 2进制和16进制中间通过转10进制可以相互转换

( 转)Sqlserver中tinyint, smallint, int, bigint的区别 及 10进制转换16进制的方法

一.类型比较 bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据,存储大小为 8 个字节.一个字节就是8位,那么bigint就有64位 int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据,存储大小为 4 个字节.int类型,最大可以存储32位的数据 smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据,存储大小为 2 个

自己实现10进制转2进制和16进制

1 public class Test { 2 3 public static void main(String[] args) { 4 System.out.println(toBinary(9)); 5 System.out.println(toHex(559)); 6 System.out.println(Integer.toBinaryString(9)); 7 System.out.println(Integer.toHexString(559)); 8 /*1001 9 22F 10

C# byte和10进制、16进制相互转换

原文:C# byte和10进制.16进制相互转换 var SRMP = new byte[4]; Array.Copy(Encoding.UTF8.GetBytes(1.ToString("x2")), SRMP, Encoding.UTF8.GetBytes(1.ToString("x2")).Length); Array.Copy(Encoding.UTF8.GetBytes((j + 1).ToString("x2")), 0, SRMP,

JS-011-颜色进制转换(RGB转16进制;16进制转RGB)

在网页开发的时候,经常需要进行颜色设置,因而经常需要遇到进行颜色进制转换的问题,例如:RGB转16进制:16进制转RGB),前几天在测试的时候,发现网站的颜色进制转换某类16进制颜色(例如:#000080,#FA08FA)转换时总是提示颜色非法,看了一下 js 源码,发现其进制转换的方法是错误的.找了一下度娘和谷大爷,最终写了一个颜色转换的小方法,源码如下所示: String.prototype.colorHex2Rgb = function(){ var reg = /^#([0-9a-fA-

C语言实现字符串中(10进制和16进制)转成十进制数

如何将字符串中的10进制数和16进制数提取出来,看以下代码: #include <stdio.h> typedef char TUINT8 ; typedef int TUINT32; TUINT32 Read_DecNumber(const TUINT8* str); TUINT32 Read_HexNumber(const TUINT8* str); int main(void) { int ret = Read_DecNumber("1000"); int d = R

10进制转16进制,16进制转10进制,随机出一个6位十六进制颜色值

方案一: var num16 = "ffffff";var num10 = parseInt(num16,16);//16进制转10进制console.log(num10) // 16777215 var colorNum = Math.round(Math.random()*num10).toString(16);colorNum = ("000000"+colorNum).slice(-6)console.log("#"+colorNum)

2进制,10进制,16进制,补码和移位

逢二进一,逢十进一,十六进制 10110101(2) = 128+32+16+4+1 = 181(10) b 5(16) = b*16+5 = 11*16+5 = 181(10) 2进制 int n = 45; System.out.println(Integer.toBinaryString(n)); 计算机的内部(Java)只有2进制数据, 在显示的时候编程语言提供API将2进制转换为10进制显示出来. 计算机只能处理2进制数据, 利用编程语言提供的算法支持了10进制 Java中用于支持2进

10进制转化成2进制,16进制

//写一个程序,将十进制,可以转换为2进制,八进制,十六进制,四进制 #include <stdio.h> #include <stdlib.h> /************************************************************************/ /* 将数字换算成2进制打印出来 */ /************************************************************************/