Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将BigInteger转换为固定长度的十六进制?_Java_Hex_Type Conversion_Biginteger - Fatal编程技术网

Java 如何将BigInteger转换为固定长度的十六进制?

Java 如何将BigInteger转换为固定长度的十六进制?,java,hex,type-conversion,biginteger,Java,Hex,Type Conversion,Biginteger,toString(16)执行此操作,但有时十六进制的字节数会有所不同。我每次都需要512字节的十六进制。我还尝试了apache的Hex和DataTypeConverter等。但没有人能保证这种一致性。是否有其他Java库可用于从给定的BigInteger生成固定长度的十六进制 PS:我在发布前搜索了stackoverflow,但没有发现关于固定长度十六进制问题的讨论 如注释中所示,使用String s=String.format(“%0512x”,biginger.valueOf(theNumb

toString(16)执行此操作,但有时十六进制的字节数会有所不同。我每次都需要512字节的十六进制。我还尝试了apache的Hex和DataTypeConverter等。但没有人能保证这种一致性。是否有其他Java库可用于从给定的BigInteger生成固定长度的十六进制


PS:我在发布前搜索了stackoverflow,但没有发现关于固定长度十六进制问题的讨论

如注释中所示,使用
String s=String.format(“%0512x”,biginger.valueOf(theNumber))


格式化程序确实支持BigInteger:请参阅其文档。

您是否尝试过类似
“%0512x”
的格式?我猜您的意思是“字符”而不是“字节”。当然512个十六进制字符是很多,但是如果这个值太大而不能容纳512个字符,你怎么保证这个长度呢?@GhostCat实际上它是一个私有密钥指数的十六进制,其位长度大约是2048。这就是为什么它很大。这会计算BigInteger的十六进制吗?@Pratap请仔细阅读。答案中有一个链接指向格式化模式的文档。不要问已经回答过的问题。读一下答案。。。尽可能多地理解它;-)。。。请理解:BigInteger只是一个数值。由该值生成的字符串的外观与值本身无关。BigInteger不是“十六进制”(或不是十六进制),它是一个数字。当您将值格式化为字符串时,十六进制就出现了@EmmanuelLonca感谢您的解决方案。工作起来很有魅力,只是有点小变化。”String s=String.format(“%0512x”,bigIntegerNumber)”。@GhostCat很抱歉我错过了链接。我不理解第一次尝试中的文档,必须通过其他几个链接才能掌握。我终于做到了!谢谢你的解释和对我的耐心:)不客气。。。这就是我们在这里的目的;-)