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 相关文章推荐
js小技巧--自动隐藏红叉叉
Aug 13 Javascript
浅析tr的隐藏和显示问题
Mar 05 Javascript
js判断上传文件类型判断FileUpload文件类型代码
May 20 Javascript
JavaScript获取Url里的参数
Dec 18 Javascript
jQuery中contents()方法用法实例
Jan 08 Javascript
javascript结合canvas实现图片旋转效果
May 03 Javascript
bootstrap导航、选项卡实现代码
Dec 28 Javascript
一个例子轻松学会Vue.js
Jan 02 Javascript
canvas实现图像截取功能
Feb 06 Javascript
Express之get,pos请求参数的获取
May 02 Javascript
Vue Components 数字键盘的实现
Sep 18 Javascript
vue Cli 环境删除与重装教程 - 版本文档
Sep 11 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 广告调用类代码(支持Flash调用)
2011/08/11 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
取选中的radio的值
2010/01/11 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python性能优化技巧
2015/03/09 Python
浅要分析Python程序与C程序的结合使用
2015/04/07 Python
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
Python FTP文件定时自动下载实现过程解析
2019/11/12 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
工作自荐信
2013/12/11 职场文书
外企求职信范文分享
2013/12/31 职场文书
购房意向书
2014/08/30 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
财务检查整改报告
2014/11/06 职场文书
公司2014年度工作总结
2014/12/10 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
git中cherry-pick命令的使用教程
2022/06/25 Servers