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 相关文章推荐
MVC+jQuery.Ajax异步实现增删改查和分页
Dec 22 Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 Javascript
jQuery快速实现商品数量加减的方法
Feb 06 Javascript
js模拟微博发布消息
Feb 23 Javascript
详解angularjs popup-table 弹出框表格指令
Sep 20 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
Jul 05 Javascript
vue动态删除从数据库倒入列表的某一条方法
Sep 29 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
Dec 02 Javascript
深入理解redux之compose的具体应用
Jan 12 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
Apr 26 Javascript
在Vue中使用HOC模式的实现
Aug 23 Javascript
JavaScript实现两个数组的交集
Mar 25 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日历[测试通过]
2008/03/27 PHP
php中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
php中ob函数缓冲机制深入理解
2015/08/03 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
基于JQuery的日期联动实现代码
2011/02/24 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
js判断某个字符出现的次数的简单实例
2016/06/03 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
2019/03/06 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
小程序实现tab标签页
2020/11/16 Javascript
Python栈类实例分析
2015/06/15 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
python调试神器PySnooper的使用
2019/07/03 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
三星美国官网:Samsung美国
2017/02/06 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
学校消防安全制度
2014/01/30 职场文书
服装采购员岗位职责
2014/03/15 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
满月酒邀请函
2015/01/30 职场文书
支行行长岗位职责
2015/02/15 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
广播体操比赛主持词
2015/06/29 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书