java - 长数删除第一位 - Fast Way JAVA

标签 java

我在一个长数组中有一系列长数字。我想取出每个 Long 数字,并想得到它的第一位,并根据第一位,我想处理其他位。就像下面的伪代码一样,

i = 1000000 ;
long[] a = new long[i];
for j = 0  to i
 do,
  get long lo = a[i];

  // get first bit of lo

  if first bit = 0
     print long number (by removing first bit) in file a1

  else 
     print long number (by removing first bit) in file a2

任何人都可以帮助我,“获取长数字的第一位”和“删除第一位并获取数字”的最快方法是什么?

最佳答案

用 1 对数字进行位掩码。

long temp = a[i];
int bit = (temp >> 63) & 1;

这会将数字按位移动 63 位,并将数字移至 1。如果该位为 1,则该数字为 1;如果该位为 0,则该数字为 0。

如果你想要最低位,则不需要移动

int bit = temp & 1;

关于java - 长数删除第一位 - Fast Way JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10323538/

相关文章:

java - Hibernate 在 emddable websphere 容器中找不到 java :comp/websphere/ExtendedJTATransaction

java - regex - Java 正则表达式匹配方括号

java - 检查 Java 中形式参数是否为 Null

java - X509UsernameRetrieverClassName 在 tomcat 6 配置中被忽略

java - 如何远程检索 java 线程转储

java - 如何从 Java 中获取 Kotlin 属性的注释?

java - 在 permgen 中查看对象的工具

java - 如何制作 JButton 的棋盘

java - 我可以打印空的 int 数组而不在 java 中出现零吗

java - 与 0xff 的按位与运算很重要吗?