js实现特定位取反原理及示例

 更新时间:2014年06月30日 09:02:27   投稿:whsnow  
循环输入每组两个数hex和n(0<=n<31),hex是一个16进制的数字,我们要做的是将hex的第n位取反,然后以16进制的形式输出对应的结果

去华为面试的时候,没有做好准备工作;面试的流程没有问清也没有查,结果一过去就让上机做题,着实有点措手不及。笔者是擅长前端的Java Web工程师啊,基本的底层编程知识早已生疏了。机试题碰到了这道位运算的题目,按理说是非常简单的,原理笔者也很清楚,但是由于实在是好多年没有搞过位运算了,Java位运算更是没有操作过,所以结果实在是不体面……

机试时间规定是一个小时,语言可选C或Java还有个什么脚本语言,笔者花了将近三个小时,才用Java勉强把题做出来了,惭愧惭愧……回来就用JS重新实现了一个简单版本,今天整理贴出来。

题目是:循环输入每组两个数hex和n(0<=n<31),hex是一个16进制的数字,我们要做的是将hex的第n位取反,然后以16进制的形式输出对应的结果。

笔者折腾两个多小时的过程就不再赘述了,这里给出js的实现,很简单的位操作基础知识。原理啰嗦一句,就是把1按比特位左移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位是符号位)。

相关文章

  • JS实现漂亮的淡蓝色滑动门效果代码

    JS实现漂亮的淡蓝色滑动门效果代码

    这篇文章主要介绍了JS实现漂亮的淡蓝色滑动门效果代码,涉及JavaScript通过自定义函数遍历页面元素及动态设置元素属性的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • JS是否可以跨文件同时控制多个iframe页面的应用技巧

    JS是否可以跨文件同时控制多个iframe页面的应用技巧

    这篇文章给大家详细介绍了JS是否可以跨文件同时控制多个iframe页面的应用技巧,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2007-12-12
  • HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天

    HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天

    WebSocket 是一种自然的全双工、双向、单套接字连接。这篇文章给大家介绍了HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天,感兴趣的朋友一起学习吧
    2016-10-10
  • TypeScript模块与命名空间的关系和使用方法

    TypeScript模块与命名空间的关系和使用方法

    在TypeScript中就像在EC5中一样,任何包含顶级import或export的文件都被认为是一个模块,下面这篇文章主要给大家介绍了关于如何在TypeScript使用模块与命名空间以及注意事项的相关资料,需要的朋友可以参考下
    2023-03-03
  • 小程序实现横向滑动日历效果

    小程序实现横向滑动日历效果

    这篇文章主要介绍了小程序实现横向滑动日历效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • JavaScript数据结构与算法之栈详解

    JavaScript数据结构与算法之栈详解

    栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表,也成称为先进后出表,下面这篇文章主要给大家介绍了关于JavaScript数据结构与算法之栈的相关资料,需要的朋友可以参考下
    2022-06-06
  • js实现点击复制当前文本到剪贴板功能(兼容所有浏览器)

    js实现点击复制当前文本到剪贴板功能(兼容所有浏览器)

    这篇文章主要介绍了js实现点击复制当前文本到剪贴板功能,兼容所有浏览器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • js使下拉列表框可编辑不止是选择

    js使下拉列表框可编辑不止是选择

    下拉列表框默认情况下是不可编辑的,下面为大家介绍个不错的方法可以使下拉列表框可编辑,具体实现如下,需要的朋友可以参考下
    2013-12-12
  • 关于base64编码和解码的js工具函数

    关于base64编码和解码的js工具函数

    这篇文章主要介绍了关于base64编码和解码的js工具函数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • js中hasOwnProperty()方法详解

    js中hasOwnProperty()方法详解

    本文主要介绍了js中hasOwnProperty()方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论