文档章节

java大数据转换16进制转10进制

任梁荣
 任梁荣
发布于 08/17 23:50
字数 225
阅读 39
收藏 0
    public static void main(String[] args) {
		String hex = "0xdbf3accc683297cf0000";
		BigInteger amount = new BigInteger(hex.substring(2), 16);
		System.out.println(amount);
	}
	public static void main(String[] args) {
		int precision = 18; // 18位小数
		String hex = "0x117067e8822a";
		BigDecimal decimal = new BigDecimal(new BigInteger(hex.substring(2), 16));
		BigDecimal precisionDecimal = new BigDecimal(10).pow(precision);
		BigDecimal value = decimal.divide(precisionDecimal).setScale(precision, RoundingMode.DOWN);
		System.out.println(value.toString());
	}
    public static void main(String[] args) {
		int precision = 18; // 18位小数
		String hex = "0x000000000000000000000000000000000000000000000000a688906bd8b00000";
		BigDecimal decimal = new BigDecimal(new BigInteger(hex.substring(2), 16));
		BigDecimal precisionDecimal = new BigDecimal(10).pow(precision);
		BigDecimal value = decimal.divide(precisionDecimal).setScale(precision, RoundingMode.DOWN);
		
		System.out.println(value.toString());

		String toHex = String.format("%#x %n", value.multiply(precisionDecimal).toBigInteger());
		System.out.println(toHex);

	}
public static void main(String[] args) {
		int precision = 18; // 18位小数
		String hex = "0x000000000000000000000000000000000000000000000000a688906bd8b00000";
		BigDecimal decimal = new BigDecimal(new BigInteger(hex.substring(2), 16));
		BigDecimal precisionDecimal = new BigDecimal(10).pow(precision);
		BigDecimal value = decimal.divide(precisionDecimal).setScale(precision, RoundingMode.DOWN);

		System.out.println(value.toString());
		BigInteger toBigInt = value.multiply(precisionDecimal).toBigInteger();
		String noZeroHex = value.multiply(precisionDecimal).toBigInteger().toString(16);

		String zeroNumber = String.format("0%sd", 64 - noZeroHex.length());
		String zero = String.format("%" + zeroNumber, 0);
		String toHex = String.format("0x%s%s", zero, noZeroHex);
		System.out.println(toHex);

		System.out.println("0x000000000000000000000000000000000000000000000000a688906bd8b00000".length());
		System.out.println("0x000000000000000000000000000000000000000000000000a688906bd8b00000".length());

	}

 

© 著作权归作者所有

共有 人打赏支持
任梁荣
粉丝 5
博文 34
码字总数 37118
作品 0
上海
后端工程师
面试中遇到的一些个问题-10进制转换为16进制

今天去一公司面试,一进门就给了张卷子,要求笔试。将10进制转换为16进制。 以前每次都用的是Java自带的函数进行转换的,比如: String s = "1610"; String _hex = Integer.toHexString(Int...

xiaoqiang_sea
06/26
0
0
Java中二进制,十进制,十六进制装换

Java中二进制,十进制,十六进制装换 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) ...

eric_zhang
2011/07/27
0
0
java 中 16 进制 HEX 转换成字节码形式的 UTF-8

恩,又碰到个蛋疼的编码转换问题了:要把形如 xE9xBB 的字符串转成中文。。。 在python中我们直接 print "xE9xBBx84" 即可, 在shell中我们直接 echo $'xe9xbbx84' #echo -e 'xe9xbbx84'也行...

大数据之路
2013/02/01
0
0
Java HexString-字节数组与十六进制字符数组转换

Java HexString-字节数组与十六进制字符数组转换 Java中byte(字节)用二进制表示占用8 bit (位),而我们知道16进制的每个字符需要用4位二进制位来表示,所以我们就可以把每个byte转换成两...

秋风醉了
2015/04/07
0
0
Java拾遗:014 - 二进制、进制转换及位运算

二进制 二进制是计算机中广泛采用的一种数制,由0和1组成,进位规则为“逢二进一”,如:0001表示十进制中的1,0010表示十进制中的2。二进制拥有大量非学有用的特性,详情参考:百度百科:二...

一别丶经年
08/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

控件WebView显示网页

一、代码编写 (一)方法一:通过打开app直接打开指定网站 1.打开Android Stutio,新建一个工程,名为Sdca。注意,名称开头必须为大写。 2.添加WebView控件 打开app esactivity_main.xml添加...

lanyu96
22分钟前
2
0
WinRAR 去除弹窗广告

想要去除它,需要用到另外一个工具resource hacker,百度一下,下载它,工具很小,安装也简单。安装过后,找到winrar安装目录下的WinRAR.exe文件,右击选择 open useing resource hacker打开...

YunOu
35分钟前
2
0
Bash工作管理详解

Bash工作管理 Bash的工作是对具体任务的一个抽象表述,更确切的说是对管道的应用上的表述。Bash中的工作在形式上表现为一组相关进程或单个进程。工作进程组分为前台和后台,前台进程会对键盘...

小陶小陶
40分钟前
2
0
Qt那些事0.0.1

LIBS += -L$$PWD/lib/ -lStv1QMAKE_POST_LINK += $$QMAKE_COPY $$replace(PWD,"/","\\")\lib\Stv1.dll $$replace(OUT_PWD,"/","\\")\debug\Stv1.dll pro文件里,写起来按理说应该是轻松地......

Ev4n
49分钟前
2
0
如何正确的使用动态VPS(Linux)自动更换IP

背景 现在越来越多的人开始玩网赚项目,蚂蚁再小也是肉,薅羊毛的羊毛党越来越多,一些网赚项目也越来越受欢迎,但是一般的网赚项目都是要求真实用户的,所以要想获得大量的真实ip,一种动态...

bengozhong
55分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部