js实现特定位取反原理及示例


Posted in Javascript onJune 30, 2014

去华为面试的时候,没有做好准备工作;面试的流程没有问清也没有查,结果一过去就让上机做题,着实有点措手不及。笔者是擅长前端的Java Web工程师啊,基本的底层编程知识早已生疏了。机试题碰到了这道位运算的题目,按理说是非常简单的,原理笔者也很清楚,但是由于实在是好多年没有搞过位运算了,Java位运算更是没有操作过,所以结果实在是不体面……

机试时间规定是一个小时,语言可选C或Java还有个什么脚本语言,笔者花了将近三个小时,才用Java勉强把题做出来了,惭愧惭愧……回来就用JS重新实现了一个简单版本,今天整理贴出来。

题目是:循环输入每组两个数hex和n(0<=n<31),hex是一个16进制的数字,我们要做的是将hex的第n位取反,然后以16进制的形式输出对应的结果。

笔者折腾两个多小时的过程就不再赘述了,这里给出js的实现,很简单的位操作基础知识。原理??乱痪洌?褪前?按比特位左移n位,然后跟原数异或就行了:

function bitOper(hex, n){ 
var num = parseInt(hex); 
num ^= (1<<n); 
return num.toString(16); 
} 
console.log(bitOper(0x1234, 3)); //123c

由于js整数类型只有32位的限制,上述示例代码仅支持n<31的简单情况(第31位是符号位)。

Javascript 相关文章推荐
使用TextRange获取输入框中光标的位置的代码
Mar 08 Javascript
mapper--图片热点区域高亮组件官方站点
Dec 22 Javascript
javascript网页关闭时提醒效果脚本
Oct 22 Javascript
jQuery实现可拖动的浮动层完整代码
May 27 Javascript
浅谈Javascript中深复制
Dec 01 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
Apr 24 Javascript
js实现新浪微博首页效果
Oct 16 Javascript
jQuery Validate初步体验(二)
Dec 12 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
Node.js npm命令运行node.js脚本的方法
Oct 10 Javascript
分享JS表单验证源码(带错误提示及密码等级)
Jan 05 Javascript
angular组件间通讯的实现方法示例
May 07 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 #Javascript
jQuery+ajax实现鼠标单击修改内容的思路
Jun 29 #Javascript
html文本框提示效果的示例代码
Jun 28 #Javascript
使用delegate方法为一个tr标签加一个链接
Jun 27 #Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
Jun 27 #Javascript
js获取指定日期周数以及星期几的小例子
Jun 27 #Javascript
网页下载文件期间如何防止用户对网页进行其他操作
Jun 27 #Javascript
You might like
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
javascript每日必学之循环
2016/02/19 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
Python简单读取json文件功能示例
2017/11/30 Python
python实现Zabbix-API监控
2018/09/17 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
python绘制封闭多边形教程
2020/02/18 Python
对Keras中predict()方法和predict_classes()方法的区别说明
2020/06/09 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
社团文化节策划书
2014/02/01 职场文书
保密工作整改报告
2014/11/06 职场文书
西游记读书笔记
2015/06/25 职场文书
2016新年致辞
2015/08/01 职场文书