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 相关文章推荐
JQuery与Ajax常用代码实现对比
Oct 03 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
Dec 28 Javascript
javascript强制点击广告的方法
Feb 06 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
Feb 28 Javascript
JS数组array元素的添加和删除方法代码实例
Jun 01 Javascript
JavaScript实现节点的删除与序号重建实例
Aug 05 Javascript
使用Angular缓存父页面数据的方法
Jan 03 Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 Javascript
对vue中v-on绑定自定事件的实例讲解
Sep 06 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
js getBoundingClientRect使用方法详解
Jul 17 Javascript
Javascript执行上下文顺序的深入讲解
Nov 04 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把session写入数据库示例
2014/02/26 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
JS跨域总结
2012/08/30 Javascript
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
简单了解JavaScript sort方法
2019/11/25 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
Python的条件语句与运算符优先级详解
2015/10/13 Python
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
python操作excel的方法
2018/08/16 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
Shein英国:女性时尚网上商店
2019/04/10 全球购物
元旦文艺汇演主持词
2014/03/26 职场文书
一年级评语大全
2014/04/23 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
2019年工作总结范文
2019/05/21 职场文书
vue完美实现el-table列宽自适应
2021/05/08 Vue.js
Python中的 No Module named ***问题及解决
2022/07/23 Python