文档章节

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

任梁荣
 任梁荣
发布于 08/17 23:50
字数 225
阅读 135
收藏 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());

	}

 

© 著作权归作者所有

共有 人打赏支持
任梁荣
粉丝 6
博文 35
码字总数 37213
作品 0
上海
后端工程师
私信 提问
1024这天,我故意写了个死循环~

导致CPU100%的原因很多,而程序中出现死循环就是原因之一。然而,并不是每个人在工作中都有机会踩中这个坑。我就是其中一个没踩过的。人生似乎有些不完整。 所以,我做了一个很重要的决定:在...

技术小能手
10/24
0
0
Java中二进制,十进制,十六进制装换

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

eric_zhang
2011/07/27
0
0
面试中遇到的一些个问题-10进制转换为16进制

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

xiaoqiang_sea
06/26
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

没有更多内容

加载失败,请刷新页面

加载更多

babel6升级到7,jest-babel报错:Requires Babel "^7.0.0-0", but was loaded with "6.26.3".

自从将前端环境更新到babel7,jest-babel之前是基于babel6的,执行时候就会报:Requires Babel "^7.0.0-0", but was loaded with "6.26.3". 很烦,因为连续帮好几台电脑修复这个问题,所以记...

曾建凯
25分钟前
1
0
探索802.11ax

802.11ax承诺在真实条件下改善峰值性能和最差情况。 如何改善今天的Wi-Fi? 在决定如何改进当前版本以外的Wi-Fi时,802.11ac,IEEE和Wi-Fi联盟调查了Wi-Fi部署和行为,以确定更广泛使用的障碍...

linuxprobe16
今天
2
0
使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
今天
4
0
深入理解Plasma(四):Plasma Cash

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍在 Plasma 框架下的项目 Plasma Cash。 深入理解Plasma(1):...

HiBlock
昨天
1
0
命令参数的三大风格:Posix、BSD、GNU

今天读到命令行中参数的风格有三大类,即Unix/Posix、BSD、GNU。分别有以下特征: Unix/Posix风格,即命令后的参数,可以分组,便必须以连字符开头,如ps -aux。 BSD风格,即命令后的参数,可...

大别阿郎
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部