java - 将值(value)存储为空头

标签 java runtime-error mips offset short

我不确定为什么我不断收到此错误,但我希望有人可以帮助我。我正在尝试使用 Java 编写部分 MIPS 反汇编程序,但是当尝试存储我的 I 格式偏移量(16 位)时,我收到一条错误消息(在发生错误的地方加星号):

private short offset;
                public void setOffset (String binary) {
                    **short s = Short.parseShort(this.binary.substring(15, 31),16);**

                    offset = s; 
                }
                public short getOffset(){
                    return offset;
                }

这是我收到的错误消息:

Exception in thread "main" java.lang.NumberFormatException: For input string: "1000000000001100"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Short.parseShort(Unknown Source)
at HexI.setOffset(HexI.java:65)
at MipsDisassembler.main(MipsDisassembler.java:31)

本质上我想将其存储为短整型并使用按位运算符返回十六进制值

最佳答案

short s = Short.parseShort(this.binary.substring(15, 31),16);

您为输入指定基数 16(十六进制),但实际上它应该是 2,因为输入是二进制的。

应该是

short s = Short.parseShort(this.binary.substring(15, 31),2);
                                                         ^

关于java - 将值(value)存储为空头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42358938/

相关文章:

java - 从 Jenkins 插件调用 API 时出现 “java.net.SocketException: Connection reset with (SSL- Self Signed Certificate)”

java - NoClassDefFound错误: org/glassfish/jersey/process/internal/RequestExecutorFactory

java - Endeca 导航引擎无法处理请求

c - 使用 MIPS 汇编的整数数组索引

sockets - 接头组装。连接,读取和写入

java - 2^32 以内的溢出不会抛出 ArithmeticException

java - 使用动态根名称反序列化 JSON

java - Apache POI 中的错误自动筛选

java - 无法在 AsyncTask 中为 ProgressDialog 调用 Looper.prepare() 的线程内创建处理程序

assembly - 对签名/未签名加载和存储指令 (MIPS) 的说明