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 Throttle &amp; Debounce应用介绍
Mar 19 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
Nov 28 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
Jun 14 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
Nov 01 Javascript
AngularJS指令详解及示例代码
Aug 16 Javascript
值得学习的bootstrap fileinput文件上传工具
Nov 08 Javascript
js定时器实例分享
Dec 20 Javascript
JavaScript实现的XML与JSON互转功能详解
Feb 16 Javascript
深入理解Vue 的条件渲染和列表渲染
Sep 01 Javascript
详解node Async/Await 更好的异步编程解决方案
May 10 Javascript
解决vuecli3.0热更新失效的问题
Sep 19 Javascript
Vue中props的详解
May 16 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+mysql查询优化简单实例
2015/01/13 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
nodejs使用Sequelize框架操作数据库的实现
2020/10/21 NodeJs
JavaScript中的Proxy对象
2020/11/27 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
Python交换变量
2008/09/06 Python
开始着手第一个Django项目
2015/07/15 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
pandas 使用均值填充缺失值列的小技巧分享
2019/07/04 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
python操作toml文件的示例代码
2020/11/27 Python
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
linux面试题参考答案(9)
2015/01/07 面试题
2014组织生活会方案
2014/05/19 职场文书
员工安全生产责任书
2014/07/22 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
离婚纠纷代理词
2015/05/23 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript