获取二进制 int,java



我想从二进制格式的getMethod((中提取一个int。有谁知道如何使用:int i = 0b10101010;(取自上一篇关于堆栈溢出的文章,谢谢大家(和一个变量。 int i = 0bgetMethod();在我尝试过的多种方式(0b + var等(中都不起作用。我没有实际值,所以我无法对 1 和 0 进行硬编码。
任何帮助将不胜感激。这是针对汇编程序的,这个二进制数是在寄存器文件中选择寄存器,以字符串格式传递以保留它,直到我解析它。

数字计算机将所有int存储在二进制中(即使是那些以十进制编码的(。您可以使用Integer.toBinaryString(int)查看任何int的二进制表示形式。

如果需要解析二进制String,则可以使用 Integer.parseInt(String, int) 其中第一个参数是要解析的String,第二个参数是基数(对于二进制,将2(。

code: int i = Integer.parseInt(Micro.RegSel, 2(; 产生错误(该方法不适用于枚举体(。Micro.RegSel 是一个枚举实现枚举体,它会产生一个包含 4 个 1 和 0 的字符串。如果我只是打印它,它会打印出丢弃所有前导零。我需要前导零。我的代码总共需要 32 位,这是其中的一部分。其中一个开关语句有:Micro.RegSel.setFourBit("0011"(;这将打印"11"。直接从枚举打印字符串:0011

int i = Integer.parseInt(Micro.RegSel.getFourBit().toString(), 2); produces a java.lang.NumberFormatException even though Micro.RegSel.getFourBit().toString() prints all 4 digits

在尝试了几个选项(这就是我提出问题的地方(并阅读堆栈跟踪后,我意识到问题是未选择寄存器的操作码的默认值为"xxxx"。所以我这样重写: 整数 i = 0; String j = Micro.RegSel.getFourBit((.toString((; if(j.matches("[\d]"(({ i = Integer.parseInt(j, 2(; }它就像我需要的那样工作。谢谢

最新更新