最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js實現(xiàn)特定位取反原理及示例

 更新時間:2014年06月30日 09:02:27   投稿:whsnow  
循環(huán)輸入每組兩個數(shù)hex和n(0<=n<31),hex是一個16進制的數(shù)字,我們要做的是將hex的第n位取反,然后以16進制的形式輸出對應(yīng)的結(jié)果

去華為面試的時候,沒有做好準備工作;面試的流程沒有問清也沒有查,結(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進制的形式輸出對應(yīng)的結(jié)果。

筆者折騰兩個多小時的過程就不再贅述了,這里給出js的實現(xiàn),很簡單的位操作基礎(chǔ)知識。原理啰嗦一句,就是把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)文章

最新評論

鄂伦春自治旗| 娄底市| 莱州市| 昌邑市| 呼和浩特市| 宁南县| 永丰县| 乌拉特前旗| 凤阳县| 环江| 乌鲁木齐市| 容城县| 阿瓦提县| 获嘉县| 拜城县| 大竹县| 乐亭县| 桓台县| 泊头市| 凌海市| 高陵县| 石泉县| 新营市| 娱乐| 麻城市| 怀柔区| 阿勒泰市| 赞皇县| 山丹县| 大港区| 满洲里市| 公安县| 南陵县| 微山县| 威海市| 镇康县| 清镇市| 遂川县| 平利县| 利辛县| 湘西|