JS封装的几个位操作函数和16进制操作函数
2015-08-06 13:46
701 查看
位操作
//获取某位的值 function getBit(val,bit){ /*1 return true; 0 return false*/ 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); }
进制操作
//十进制转16进制操作 var a = 10; b = a.toString(16); //补0,如:padNumber(3,2) 返回:03 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; } /*16进制字符串 每2个字符用一个空格隔开*/ 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; } /** 字符串转十六进制字符串数组 示例:strToHexStrArray("ebcca2d87c21d65596a3cf304f47add2",2) 返回:["eb", "cc", "a2", "d8", "7c", "21", "d6", "55", "96", "a3", "cf", "30", "4f", "47", "ad", "d2"] */ 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; }
相关文章推荐
- JS判断,今天所在季度,第几周, 季度的第几周,年度第几周
- 编写良好javascript,css,html的方法技巧(持续更新……)
- 使用js处理图片效
- 30天了解30种技术系列---(1)现代web应用服务器-Express.js
- Extjs radiogroup 获取选中
- 整理 Anglarjs的service,directve的基本用法
- Extjs textfield 宽
- js运动基础
- javaScript对Cookie的添加,获取,删除等操作
- JS 导出网页中Table内容到excel
- javascript实现鼠标放上后下边对应内容变换的效果
- JAVASCRIPT——文字出现效果练习
- ajax无刷新上传(使用ajaxfileupload.js)
- webservice 实现json模式
- js 常用方法
- js 请求URL 追加参数
- JavaScript 之 SeaJS 学习
- [Javascript] 对象的创建与类的封装
- JavaScript之数据类型
- JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解