js實現(xiàn)特定位取反原理及示例
去華為面試的時候,沒有做好準備工作;面試的流程沒有問清也沒有查,結(jié)果一過去就讓上機做題,著實有點措手不及。筆者是擅長前端的Java Web工程師啊,基本的底層編程知識早已生疏了。機試題碰到了這道位運算的題目,按理說是非常簡單的,原理筆者也很清楚,但是由于實在是好多年沒有搞過位運算了,Java位運算更是沒有操作過,所以結(jié)果實在是不體面……
機試時間規(guī)定是一個小時,語言可選C或Java還有個什么腳本語言,筆者花了將近三個小時,才用Java勉強把題做出來了,慚愧慚愧……回來就用JS重新實現(xiàn)了一個簡單版本,今天整理貼出來。
題目是:循環(huán)輸入每組兩個數(shù)hex和n(0<=n<31),hex是一個16進制的數(shù)字,我們要做的是將hex的第n位取反,然后以16進制的形式輸出對應的結(jié)果。
筆者折騰兩個多小時的過程就不再贅述了,這里給出js的實現(xiàn),很簡單的位操作基礎知識。原理啰嗦一句,就是把1按比特位左移n位,然后跟原數(shù)異或就行了:
function bitOper(hex, n){ var num = parseInt(hex); num ^= (1<<n); return num.toString(16); } console.log(bitOper(0x1234, 3)); //123c
由于js整數(shù)類型只有32位的限制,上述示例代碼僅支持n<31的簡單情況(第31位是符號位)。
相關(guān)文章
基于javascript實現(xiàn)句子翻牌網(wǎng)頁版小游戲
這篇文章主要介紹了基于javascript實現(xiàn)句子翻牌網(wǎng)頁版小游戲的相關(guān)資料,需要的朋友可以參考下2016-03-03JavaScript計算字符串中特定字符出現(xiàn)次數(shù)的實例詳解
在JavaScript編程中,經(jīng)常會遇到需要計算字符串中特定字符出現(xiàn)次數(shù)的情況,在本文中,我將分享兩個簡單的JavaScript函數(shù),用于計算字符串中特定字符出現(xiàn)的次數(shù),需要的朋友可以參考下2023-11-11JS中setTimeout和setInterval的最大延時值詳解
這篇文章主要介紹了JS中setTimeout和setInterval的最大延時值的相關(guān)資料,文中通過示例代碼介紹的很詳細,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-02-02基于JavaScript實現(xiàn)Json數(shù)據(jù)根據(jù)某個字段進行排序
這篇文章主要介紹了基于JavaScript實現(xiàn)Json數(shù)據(jù)根據(jù)某個字段進行排序的相關(guān)資料,需要的朋友可以參考下2015-11-11uploadify在Firefox下丟失session問題的解決方法
在用uploadify上傳插件時遇到了一個問題,在讀session時認為沒有權(quán)限而被攔截了,后來在后臺打印登錄時產(chǎn)生session的id和上傳時讀取session的id,解決方法如下,感興趣的朋友可以了解下2013-08-08