位操作
function getBit(val,bit){
return ((val & (0x1 << bit)) >> bit)==1;
}
function setBit(val,bit){
return val | (0x1 << bit)
}
function clearBit(val,bit){
var a=255;
for(var i=0;i<=bit;i++){
a=a<<1;
if(i>0)a++;
}
return val & a;
}
function reverseBit(val,bit){
if(getBit(val,bit)) return clearBit(val,bit);
else return setBit(val,bit);
}
进制操作
var a = 10;
b = a.toString(16);
function padNumber(num, fill) {
var len = ('' + num).length;
return (Array(
fill > len ? fill - len + 1 || 0 : 0
).join(0) + num);
}
function hexToInt(hex) {
if (hex.length % 2 !== 0) {
hex = "0" + hex;
}
var num = parseInt(hex, 16);
var maxVal = Math.pow(2, hex.length / 2 * 8);
if (num > maxVal / 2 - 1) {
num = num - maxVal;
}
return num;
}
function hexArarryAddSpace(str) {
var result = '';
for (var i = 0; i < str.length; i += 2) {
if (result !== '') result += ' ';
result += str[i] + str[i + 1];
}
return result;
}
function strToHexStrArray(str, split_len) {
var array = strToHexArray(str, split_len);
return arrToHexStrArray(array);
}
function arrToHexStrArray(array) {
var result = [];
for (var i = 0; i < array.length; i++) {
if (typeof (array[i]) == 'undefined') {
console.error('要转为16进制字符串的数组异常,array,i', array, i);
continue;
}
var temp = array[i].toString(16);
if (temp.length == 1) temp = "0" + temp;
result.push(temp);
}
return result;
}