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 相关文章推荐
JavaScript 高级语法介绍
Jun 15 Javascript
关于jquery input textare 事件绑定及用法学习
Apr 03 Javascript
js导出格式化的excel 实例方法
Jul 17 Javascript
图片翻转效果具体实现代码
Jan 09 Javascript
jQuery实现流动虚线框的方法
Jan 29 Javascript
分享纯手写漂亮的表单验证
Nov 19 Javascript
微信小程序 本地存储及登录页面处理实例详解
Jan 11 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
Aug 17 jQuery
微信小程序自定义tab实现多层tab嵌套功能
Jun 15 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
May 10 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
May 15 Javascript
VUE实现强制渲染,强制更新
Oct 29 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
星际玩家的三大定律
2020/03/04 星际争霸
php的access操作类
2008/04/09 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
七种PHP开发环境搭建工具
2020/06/28 PHP
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
C语言编程练习
2012/04/02 面试题
小学清明节活动总结
2014/07/04 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
工作证明英文模板
2014/10/21 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
大学社团活动总结怎么写
2019/06/21 职场文书
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技