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 鼠标拖动对象 可让任何div实现拖动效果
Nov 09 Javascript
JQuery EasyUI 对话框的使用方法
Oct 24 Javascript
基于jQuery的图片剪切插件
Aug 03 Javascript
jquery中ajax学习笔记4
Oct 16 Javascript
jQuery中读取json文件示例代码
May 10 Javascript
jquery插件推荐 jquery.cookie
Nov 09 Javascript
jQuery中prevUntil()方法用法实例
Jan 08 Javascript
jQuery的load()方法及其回调函数用法实例
Mar 25 Javascript
深入浅析JavaScript中with语句的理解
May 12 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
Jan 11 Javascript
vuex实现的简单购物车功能示例
Feb 13 Javascript
Vue.js原理分析之nextTick实现详解
Sep 07 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 CLI实现简单的数据库实时监控调度
2009/07/01 PHP
PHP的变量总结 新手推荐
2011/04/18 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
一个基于jquery的图片切换效果
2010/07/06 Javascript
javascript动画浅析
2012/08/30 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
浅析python标准库中的glob
2020/03/13 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
Python调用Redis的示例代码
2020/11/24 Python
Python 可视化神器Plotly详解
2020/12/26 Python
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
优秀英语专业毕业生求职信
2013/11/23 职场文书
团日活动总结怎么写
2014/06/25 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
公司老总年会致辞
2015/07/30 职场文书
商场广播稿范文
2015/08/19 职场文书
升职自荐书
2019/05/09 职场文书