java - 从文本区域获取二进制文件,然后转换为十六进制

标签 java

我想在文本区域中取一个二进制并将其转换为十六进制。使用计算器计算时,结果是“E0AC882AA428B6B8”,但用我的代码结果是“30”。

String str = txtXOR.getText();
char[] chars = str.toCharArray();

StringBuffer hex = new StringBuffer();
int x = chars.length;

for(int i = 0; i < x; i++){
  hex.append(Integer.toHexString((int)chars[i]));
  txtXORToHexa.setText(Integer.toHexString((int) chars[i]));
}

谁能指出我哪里做错了?

最佳答案

你应该使用 Integer#parseInt(String s, int radix)以 2 为底解析二进制字符串,然后使用 toHexString 获取十六进制字符串:

String binaryStr = txtXOR.getText();
int number = Integer.parseInt(binaryStr, 2);
String hexStr = Integer.toHexString(number);
txtXORToHexa.setText(hexStr);

如果您必须支持非常大的数字,您可以使用 BigInteger :

String binaryStr = txtXOR.getText();
BigInteger number = new BigInteger(binaryStr, 2);
String hexStr = number.toString(16);
txtXORToHexa.setText(hexStr);

关于java - 从文本区域获取二进制文件,然后转换为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14124556/

相关文章:

java - 为 Java 中类的每个实例重写方法

java - iTextPDF:动态更改表格对齐方式

java - 如何使用 SolrJ 运行完全导入命令

java - Android Studio 找不到或加载 "Scratch"文件的主类

java - 如何使用 Hibernate/Spring JPA 为 Snowflake 表生成唯一的 AutoIncremented Id?

Java标签语句和goto

java - 我可以打印空的 int 数组而不在 java 中出现零吗

java - 一个标签库可以被多个uri引用吗?

java - 在java中编写一个具有定义的最大行数的文本文件

Java 和 JavaScript 直接通信