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 相关文章推荐
一个很简单的办法实现TD的加亮效果.
Jun 29 Javascript
Jquery post传递数组方法实现思路及代码
Apr 28 Javascript
Jquery实现控件的隐藏和显示实例
Feb 08 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
特殊日期提示功能的实现方法
Jun 16 Javascript
Angular2 (RC4) 路由与导航详解
Sep 21 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
Sep 23 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
Apr 21 Javascript
详解Vue webapp项目通过HBulider打包原生APP
Jun 29 Javascript
15个顶级开源JavaScript框架和库
Oct 10 Javascript
JavaScript实现简单的弹窗效果
May 19 Javascript
微信小程序实现星星评分效果
Nov 01 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下使用strpos需要注意 === 运算符
2010/07/17 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
php实现json编码的方法
2015/07/30 PHP
实现复选框全选/全不选切换
2006/12/23 Javascript
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
javascript制作2048游戏
2015/03/30 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
python私有属性和方法实例分析
2015/01/15 Python
Python科学画图代码分享
2017/11/29 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
北大自主招生自荐信
2013/10/19 职场文书
建材业务员岗位职责
2013/12/08 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
未婚证明书模板
2014/10/08 职场文书
公司禁烟通知
2015/04/23 职场文书
走进毛泽东观后感
2015/06/04 职场文书
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript