当前位置: 首页 > 面试题库 >

解决所有Java字节均已签名的最佳方法是什么?

班玉堂
2023-03-14
问题内容

在Java中,没有无符号字节之类的东西。

使用一些低级代码,有时您需要使用无符号值大于128的字节,由于MSB被用作符号,因此Java会将其解释为负数。

解决此问题的好方法是什么?(说不使用Java不是一种选择)


问题答案:

从数组读取任何单个值时,请将其复制到short或int之类的值中,然后将负数手动转换为正值。

byte[] foobar = ..;
int value = foobar[10];
if (value < 0) value += 256 // Patch up the 'falsely' negative value

写入数组时,可以执行类似的转换。



 类似资料:
  • 问题内容: 至少有六打Django应用程序为Django提供OpenID身份验证: django-openid django-openid-auth 另一个django-openid-auth,似乎已经死了 django-authopenid django-socialauth(还提供对Twitter和Facebook帐户的身份验证) django-socialregistration(也具有Fa

  • 当我使应用程序使用许多库时。我通常遇到的错误是 此错误有一些原因,因为: 数函数 关于第二种情况,很难检测嵌套了什么库。 如果你对这个问题有经验,请分享给我。 更新:

  • 问题内容: 请注意 :这是一个古老的问题,带有古老的答案。现在大多数链接的应用程序都不再需要维护。这些天来,大多数人似乎都使用django- allauth 或python-social- auth 。为了后代的缘故,下面将完整保留原始问题。 至少有六打Django应用程序为Django提供OpenID身份验证: django-openid django-openid-auth 另一个django

  • 问题内容: 我试图使用node.js中的Q模块来兑现承诺,但是我有一个小问题。 在此示例中: .create方法将在每个.then()中返回一个promise,如预期的那样,将获得promise的已解析值。 但是在最终的.then()中,我需要拥有所有3个先前解析的Promise值。 最好的方法是什么? 问题答案: 这些是您的许多选择中的一些: 在门1的后面,使用reduce来串行累加结果。 在2

  • 问题内容: 我有一个600万行的SQLite表。 从表中删除是很慢的。 删除表然后重新创建它似乎更快。 我正在使用它进行数据库导入。 删除表会是更好的方法还是有办法快速删除所有数据? 问题答案: 一个很大的不同是DML和DDL。对于数据库事务,这非常重要。最后的结果可能是相同的,但是这些操作有很大的不同。 如果您只是要了解性能,那么可以删除并重新创建表。如果您需要在导入中进行事务处理,则必须注意,

  • 问题内容: 我有一个与此相似的类,并且findbugz抱怨“从实例方法写入静态字段”(和)。我无法在ctor中设置静态字段。 解决此问题的最佳方法是什么? 将staticField放在AtomicReference中就足够了吗? 问题答案: 尽可能保持与原始设计的距离… 通过类名称引用您的静态变量,这将删除findbugz警告。将您的静态变量标记为volatile,这将使引用在多线程环境中更安全。