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与vbscript数据共享
Jan 09 Javascript
JavaScript 应用类库代码
Jun 02 Javascript
jquery 鼠标滑动显示详情应用示例
Jan 24 Javascript
jQuery filter函数使用方法
May 19 Javascript
超链接的禁用属性Disabled使用示例
Jul 31 Javascript
jquery心形点赞关注效果的简单实现
Nov 14 Javascript
jquery-mobile基础属性与用法详解
Nov 23 Javascript
Javascript中关于Array.filter()的妙用详解
Dec 04 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
Aug 21 Javascript
详解JS中的this、apply、call、bind(经典面试题)
Sep 19 Javascript
使用pkg打包ThinkJS项目的方法步骤
Dec 30 Javascript
vue组件添加事件@click.native操作
Oct 30 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使用数组填充下拉列表框的方法
2015/03/31 PHP
laravel开发环境homestead搭建过程详解
2020/07/03 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
很可爱的输入框
2008/08/03 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
js运动应用实例解析
2015/12/28 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
JS中的三个循环小结
2017/06/20 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
vue中使用vee-validator完成表单校验方案
2019/11/01 Javascript
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
法学专业自我鉴定
2014/02/05 职场文书
班主任寄语大全
2014/04/04 职场文书
物业品质提升方案
2014/06/08 职场文书
2014年实习期工作总结
2014/11/27 职场文书
统计工作个人总结
2015/03/03 职场文书
《分数乘法》教学反思
2016/02/24 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python
分享7个 Python 实战项目练习
2022/03/03 Python