添加,减法,除法和乘以存储在布尔数组中的两个二进制数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加,减法,除法和乘以存储在布尔数组中的两个二进制数相关的知识,希望对你有一定的参考价值。

我需要帮助制作二进制计算器。我试图添加,减去,除法和乘以两个二进制数,这些二进制数在java中存储为boolean []数组。我很困难,所以一些帮助将不胜感激!谢谢!

private static boolean[] multiply(boolean[] bits1, boolean[] bits2) {
    // TODO Auto-generated method stub
    return null;
}

private static boolean[] subtract(boolean[] bits1, boolean[] bits2) {
    // TODO Auto-generated method stub
    return null;
}

private static boolean[] add(boolean[] bits1, boolean[] bits2) {

    return null;
}
private static Object[] divide(boolean[] bits1, boolean[] bits2) {
    // TODO Auto-generated method stub
    return null;
}
答案

首先转换为长:

long boolToLong(boolean[] b){
   long sum = 0;
   for(int i = 0; i < b.length; i++){
      if(b[i])sum += Math.pow(2, i);
   }
   return sum;
}

然后,乘以/加/除/减,然后,转换回布尔数组:

boolean[] longToBool(long l){
   boolean[] result = new boolean[1+(int) Math.ceil(Math.log(l)/Math.log(2))];
   for(int i = 0; i < result.length; i++){
      result[i] = ((l%(Math.pow(2, i+1))) >= Math.pow(2, i))
   }
   return result;
}

以上是关于添加,减法,除法和乘以存储在布尔数组中的两个二进制数的主要内容,如果未能解决你的问题,请参考以下文章

减法和除法运算的十六进制计算器问题

高精度加法,减法,乘法,除法

查找产品的最大值以及数组中元素的求和、减法和除法

模2运算的原理 模2加法,模2减法,模2乘法,模2除法

模2加法,模2减法,模2除法

二进制运算&逻辑运算