草庐IT

double-byte

全部标签

java - 在不转换为 byte[] 的情况下获取带字节编码的 String 大小

我有一种情况需要知道String/encoding对的大小(以字节为单位),但不能使用getBytes()方法,因为1)String非常大,在byte[]数组中复制String会使用大量内存,但更重要的是2)getBytes()根据String的长度*每个字符的最大可能字节数分配一个byte[]数组。因此,如果我有一个包含1.5B个字符和UTF-16编码的String,getBytes()将尝试分配一个3GB的数组并失败,因为数组被限制为2^32-X字节(X是特定于Java版本的)。那么-有什么方法可以直接从String对象计算String/encoding对的字节大小吗?更新:这是j

java - Java 中有 long double 的替代品吗?

我在阅读C中的数据类型。我发现longdouble的范围比java中的double大。对于非常大的数字,我们可以在C中使用longdouble。如果我想在java中存储相同的数字,我们必须做什么?我们可以使用哪种数据类型?doubleinjavatakes8bytes(64bits)IEEE754.itCoversarangefrom4.94065645841246544e-324dto1.79769313486231570e+308d(positiveornegative).longdoubleinctakes10bytes(80bits)谁能告诉我java中有没有longdoubl

Java : ignore single click on double click?

谁能想出一个好方法来忽略Java中伴随双击而来的单击?我希望每个行为都有不同的行为:单击在单击点上绘制十字准线双击选择屏幕上的对象,但不应不在点击点绘制十字线...任何人都可以想办法做到这一点吗?也许是某种计时器设置?一个想法赞赏:-)...是的,我知道我正在犯下最令人发指的可用性/UI失礼。编辑#2:即使这可行,但由于计时器造成的延迟令人抓狂-我放弃了这个解决方案,并使用中键单击而不是双击进行选择...编辑:谢谢cgull-这就是我在你确认没有简单的方法来做到这一点的情况下能够想出的(请注意,如果我设置计时器200的东西工作只是桃子):publicvoidmouseClicked(M

java - double 或 BigDecimal 会溢出吗?

Java8给了我们Math.addExact()对于整数而不是小数。double和BigDecimal是否可能溢出?根据Double.MAX_VALUE判断和HowtogetbiggestBigDecimalvalue我会说答案是肯定的。因此,为什么我们不为这些类型也提供Math.addExact()呢?自己检查这个最可维护的方法是什么? 最佳答案 double溢出到Infinity和-Infinity,它不会环绕。BigDecimal不会溢出,期间,它仅受计算机内存量的限制。请参阅:HowtogetbiggestBigDecima

java - 在 Java 中将 long[64] 转换为 byte[512]?

我正在将一个流程移植到Java。已经有C#和C++的工作版本。我在C#中有一个部分,我执行Marshal.Copy(...)将64ulongs转换为512字节,而在C++中的那一行我使用memmove(...)来做同样的事情。Java中有什么可以实现相同的结果?我需要相同顺序的相同二进制信息,就像bytes而不是longs。编辑:我移植到Java的原因是为了利用Java自然具有的可移植性。我不想使用native代码。还有一点。由于Java不包含无符号值,因此我需要稍微更改一下我的请求。我想从64个long(C#和C++中的ulong)中的每一个中获得8个无符号字节值,以便稍后在数组的索

java - 如何将 double 添加到 Integer 的 ArrayList 中? ( java )

我试图理解如何将Double值放入Integer的ArrayList中。numList是Integer的ArrayList,它的值是Double。这是代码:packagebounded.wildcards;importjava.util.ArrayList;importjava.util.List;publicclassGenericsDemo{publicstaticvoidmain(String[]args){//InvarianceWorkaroundListnumList=newArrayList();GenericsDemo.invarianceWorkaround(numL

java - MalformedByteSequenceException : Invalid byte 2 of 2-byte UTF-8 sequence

我有一个包含阿拉伯字符的xml文件。当我尝试解析一个文件时,出现异常,MalformedByteSequenceException:2字节UTF-8序列的无效字节2。我使用POIDOM解析文档。日志是,2012-03-1911:30:00,433[ERROR](com.infomindz.remitglobe.bll.remittance.BlackListBean)-Errorcom.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:Invalidbyte2of2-byteUTF-8sequen

java - Java 中的 Base64 字符串转 byte[]

这个问题在这里已经有了答案:Base64:java.lang.IllegalArgumentException:Illegalcharacter(6个答案)关闭5年前。我正在尝试将base64字符串转换为字节数组,但它抛出以下错误java.lang.IllegalArgumentException:Illegalbase64character3a我尝试了以下选项userimageisbase64stringbyte[]img1=org.apache.commons.codec.binary.Base64.decodeBase64(userimage);`/*byte[]decodedS

java - 奇怪的 Java 行为 : How come adding doubles with EXACTLY two decimal places result to a double with MORE THAN two decimal places?

如果我有一个double组,每个数组都有两个小数位,通过循环将它们加在一起,然后打印出总数,结果是一个小数点后两位以上的数字。这很奇怪,因为从理论上讲,将两个数字相加,每个数字都有2个小数位且只有2个小数位,永远不会产生一个超过百分之一的非零数字。尝试执行这段代码:double[]d=newdouble[2000];for(inti=0;i在我的电脑上,打印出来的是:total:59.940000000000005,5如果我将总数四舍五入到小数点后两位,那么我得到的数字与我在计算器上手动将9.99相加六次时得到的数字相同。但这是怎么发生的,额外的小数位从何而来?我做错了什么或者(我怀疑

java - 检查两个 float/double 值是否完全相等

比较两个浮点值是否完全相等的优雅、可读且不冗长的方法是什么?虽然听起来很简单,但这是一个棘手的问题。==运算符无法为NaN完成工作,并且对零也有特殊处理:(+0.0==-0.0)->trueDouble.NaN==Double.NaN->false但我想确定两个值是否完全相同(但我不关心不同的NaN模式,因此任何NaN==任何其他NaN->true)。我可以用这段丑陋的Monster代码来做到这一点:Double.doubleToLongBits(a)==Double.doubleToLongBits(b)有没有更好的方式来写这个(并使意图显而易见)? 最佳