草庐IT

$二进制

全部标签

32 位签名二进制字符串的 Java Integer.parseInt() 抛出 NumberFormatException

这是JavaApi的错误吗?inti=0xD3951892;System.out.println(i);//-745203566StringbinString=Integer.toBinaryString(i);intradix=2;intj=Integer.valueOf(binString,radix);Assertions.assertThat(j).isEqualTo(i);我希望毫无疑问这是真的。但它抛出以下异常:java.lang.NumberFormatException:Forinputstring:"11010011100101010001100010010010"a

Java 十进制格式解析问题

publicclassNumFormatTest{publicstaticvoidmain(String[]args)throwsParseException{Stringnum="1201";DecimalFormatdf=(DecimalFormat)NumberFormat.getNumberInstance(Locale.FRANCE);System.out.println("NumberBeforeparse:"+num);doubledm=df.parse(num).doubleValue();System.out.println("NumberAfterparse:"+d

java - 将原始二进制数据与 XML 一起存储的最标准 Java 方法是什么?

我需要将大量二进制数据存储到一个文件中,但我还想以XML格式读取/写入该文件的header。是的,我可以将二进制数据存储到一些XML值中,然后使用base64编码对其进行序列化。但这不会节省空间。我能否以或多或少的标准化方式“混合”XML数据和原始二进制数据?我在考虑两个选择:有没有办法使用JAXB来做到这一点?或者有没有办法获取一些现有的XML数据并向其附加二进制数据,从而识别边界?我正在寻找的概念不是以某种方式被/用于SOAP吗?或者在电子邮件标准中使用它?(二进制附件的分离)我想要实现的计划:[meta-info-about-boundary][XML-data][boundar

java - 如何将负整数转换为二进制补码形式? ( java )

我需要将正数和负数转换为二进制格式-例如,2转换为“00000010”,-2转换为“11111110”。我不需要超过12位左右,所以如果字符串长于12位,我可以去掉前导符号位。看起来Integer.toBinaryString()会计算正数,但有没有可以计算负数的? 最佳答案 Integer.toBinaryString也适用于负数。:-)例如,Integer.toBinaryString(-2)返回11111111111111111111111111111110。如果您取最右边的12个字符,则根据需要您有低12位。

java - 将字节数组转换为十进制

我有一个字节数组,我想根据我在这个数组中的数据做一些操作。字节数组的内容是十六进制格式。byte[]signal=message.getFieldValue("_DecoderMessage").data();这给了我包含以下内容的字节数组[ffff11ffff8205001300d700fcdc03040000010000001e000000520000]是否可以将此字节数组转换为包含十进制值的数组?或者,如果我对任何特定索引感兴趣,如何将该索引的值转换为十进制?假设我想转换字节数组中为01的索引18。顺便说一句,我正在使用Java。谢谢 最佳答案

Java - 抽象类和子类的二进制兼容性

在Java中,我定义了一个抽象类,里面既有具体的方法,也有抽象的方法,而且必须由第三方开发者独立子类化。只是为了确定:我是否可以对抽象类进行任何更改,使其与它们的类源代码兼容但二进制不兼容?换句话说:在他们编译了他们的子类之后,我可以改变抽象类-除了例如向其中添加一个抽象方法或从中删除一个由子类调用的protected方法,这些子类当然是源代码不兼容的——以一种可能迫使他们重新编译其子类的方式? 最佳答案 如果现在更改您的系统还为时不晚,我建议您这样做。覆盖通常不是自定义功能的好方法,因为它非常脆弱。例如,如果您稍后使用您的客户使用

java - 以十进制格式转换小时

我已经尝试过多种解决方案来解决这个问题,但我似乎无法解决。我有十进制格式的时间,以小时为单位。我想通过将其更改为DD:HH:MM:SS格式使其更清晰。示例:10.89小时==10小时53分40秒编辑:10.894945454545455==10小时53分40秒我尝试过的:inthours=(int)((finalBuildTime)%1);intminutes=(int)((finalBuildTime*(60*60))%60);intseconds=(int)((finalBuildTime*3600)%60);returnString.format("%s(h)%s(m)%s(s)

java - 十六进制浮点文字

这个问题在这里已经有了答案:Javafloating-pointnumbersrepresentationasahexadecimalnumbers(2个答案)Inbinarynotation,whatisthemeaningofthedigitsaftertheradixpoint"."?(7个答案)关闭8年前。0x12.2P2如何等于72.5?我知道P后面的值称为二进制指数,表示数字乘以的二次方?

java - 如何在 Java 中将十六进制字符串转换为 float ?

Java中如何将十六进制字符串转为单精度float?例如如何实现:floatf=HexStringToFloat("BF800000");//f现在应该包含-1.0我问这个是因为我试过:floatf=(float)(-1.0);Strings=String.format("%08x",Float.floatToRawIntBits(f));f=Float.intBitsToFloat(Integer.valueOf(s,16).intValue());但我得到以下异常:java.lang.NumberFormatException:对于输入字符串:“bf800000”

java - 将 Byte[] append 到二进制文件的末尾

我正在解析一个文件。我正在创建一个新的输出文件,并且必须向其中添加“byte[]数据”。从那里我需要将许多其他“byte[]数据”append到文件末尾。我想我会让用户为输出文件名添加一个命令行参数,因为我已经让他们提供了我们正在解析的文件名。也就是说,如果系统中尚未创建文件名,我觉得我应该生成一个。现在,我不知道该怎么做。我的程序当前正在使用DataInputStream来获取和解析文件。我可以使用DataOutputStream追加吗?如果是这样,我想知道如何append到文件而不是覆盖。 最佳答案 IfsoI'mwonderi