javascript 大数值进行按位运算

来源:互联网 发布:新奥能源怎么样 知乎 编辑:程序博客网 时间:2024/04/29 23:02
// 将十进制转换为2进制  function toBin(intNum) {  var answer = "";  if(/\d+/.test(intNum)) {while(intNum != 0) {  answer = Math.abs(intNum%2)+answer;  intNum = parseInt(intNum/2);}if(answer.length == 0)  answer = "0";return answer;  } else {return 0;  }} // 返回num个0的字符串拼接 function addZero (num) { var result = ''; for ( i=0;i<num; i++ ) { result = result+'0'; } return result; }  // 大数值按位与 function bigIntAnd(str1,str2) {   var result = '';   str1 = toBin(str1);   str2 = toBin(str2);   if(str1.length < str2.length)   {             var temp = str1; str1 = str2;     str2 = temp;   }   str2 = addZero(str1.length - str2.length) + str2;   for (i = str2.length - 1 ;i >= 0;i--)   {   result = ((str1.charAt(i)=='1' && str2.charAt(i)=='1') ? '1' : '0') + result;   }       return parseInt(result,2); }// 大数值按位或 function  bigIntOr(str1,str2) {   var result = '';   str1 = toBin(str1);   str2 = toBin(str2);   if(str1.length < str2.length)   {             var temp = str1; str1 = str2;     str2 = temp;   }   str2 = addZero(str1.length - str2.length) + str2;     for (i = str2.length - 1 ;i >= 0;i--)   {  result = ((str1.charAt(i)=='1' || str2.charAt(i)=='1') ? '1' : '0') + result;   }   result = str1.substring (0,str1.length - str2.length) +result;   return parseInt(result,2); }

原创粉丝点击