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