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 进度条 实现代码
Jul 30 Javascript
jquery 最简单易用的表单验证插件
Feb 27 Javascript
javascript 伪数组实现方法
Oct 11 Javascript
获取表单控件原始(初始)值的方法
Aug 21 Javascript
javascript设计模式之解释器模式详解
Jun 05 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
Nov 19 Javascript
AngularJS基础 ng-mouseleave 指令详解
Aug 02 Javascript
JavaScript 中有关数组对象的方法(详解)
Aug 15 Javascript
dul无法加载bootstrap实现unload table/user恢复
Sep 29 Javascript
简单实现js倒计时功能
Feb 13 Javascript
Django+Vue.js搭建前后端分离项目的示例
Aug 07 Javascript
JavaScript缺少insertAfter解决方案
Jul 03 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字符串函数的总结分析
2013/06/05 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
2013/09/28 PHP
PHP中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
JS跨域代码片段
2012/08/30 Javascript
jQuery中last()方法用法实例
2015/01/06 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
2015/06/05 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
JavaScript实现弹出窗口效果
2020/12/09 Javascript
python 简单的多线程链接实现代码
2016/08/28 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
行政部工作岗位职责范本
2014/03/05 职场文书
烟台的海导游词
2015/02/02 职场文书
2019新员工心得体会
2019/06/25 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS