【问题标题】:how convert a 2 digit decimal to byte with same digits?如何将 2 位小数转换为具有相同数字的字节?
【发布时间】:2015-03-16 13:26:34
【问题描述】:

我正在使用十六进制和字节数字,现在在转换如下内容时遇到问题:

int i= 26;
byte b = 0x00;

我想要:

b = 0x26;(0x26 必须是“字节”格式)

或者例如对于

i= 90;

我必须有

Byte b = 0x90;

你能给我一个方法来完成我的工作吗? 谢谢你...

【问题讨论】:

  • 4字节数据到1字节数据的转换?
  • 不!只是我所说的问题......
  • 输入为2位十进制数(或整数),,, 输出为同位字节...
  • 为什么你想要相同的字节数加上我们用于十六进制数的 0x?
  • 你的意思是不需要把 0x 放在 26 的第一个吗?

标签: java android hex byte


【解决方案1】:

您可以使用Byte.parseByte(String, int) 方法简单地将您的“26”解析为用于创建byte 原语的十六进制值:

int number = 26;
String intString = Integer.toString(number);
byte b = Byte.parseByte(intString, 16);

使用16 的基数值是因为您希望字节具有等于0x26 的值,而0x 前缀表示以16 为底的十六进制。

如果你想要一个 Byte 对象,你可以使用 valueOf 代替:

Byte b = Byte.valueOf(intString, 16);

【讨论】:

  • 可以通过这种方法将“0x”添加到26的第一个吗?
  • 您不能调用parseByte("0x26", 16),因为String 只能包含来自给定基数的数字。对于基数 16,这意味着 0-9 和 A-F。表示十六进制的“0x”不是必需的,因为基数 16 指定了这一点。
  • 我不想将 int 格式的数字保存为字节 b ,例如 26 ,按 1A 值,而是希望按 0x26 值保存...您的代码可以吗?
  • 不清楚你在问什么。上面的代码将采用一个值为 26 的 int 并生成一个 byte,它的值与您通过调用 byte b = 0x26 获得的值相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 2022-11-17
  • 2011-02-09
  • 1970-01-01
相关资源
最近更新 更多