js實(shí)現(xiàn)特定位取反原理及示例
去華為面試的時(shí)候,沒(méi)有做好準(zhǔn)備工作;面試的流程沒(méi)有問(wèn)清也沒(méi)有查,結(jié)果一過(guò)去就讓上機(jī)做題,著實(shí)有點(diǎn)措手不及。筆者是擅長(zhǎng)前端的Java Web工程師啊,基本的底層編程知識(shí)早已生疏了。機(jī)試題碰到了這道位運(yùn)算的題目,按理說(shuō)是非常簡(jiǎn)單的,原理筆者也很清楚,但是由于實(shí)在是好多年沒(méi)有搞過(guò)位運(yùn)算了,Java位運(yùn)算更是沒(méi)有操作過(guò),所以結(jié)果實(shí)在是不體面……
機(jī)試時(shí)間規(guī)定是一個(gè)小時(shí),語(yǔ)言可選C或Java還有個(gè)什么腳本語(yǔ)言,筆者花了將近三個(gè)小時(shí),才用Java勉強(qiáng)把題做出來(lái)了,慚愧慚愧……回來(lái)就用JS重新實(shí)現(xiàn)了一個(gè)簡(jiǎn)單版本,今天整理貼出來(lái)。
題目是:循環(huán)輸入每組兩個(gè)數(shù)hex和n(0<=n<31),hex是一個(gè)16進(jìn)制的數(shù)字,我們要做的是將hex的第n位取反,然后以16進(jìn)制的形式輸出對(duì)應(yīng)的結(jié)果。
筆者折騰兩個(gè)多小時(shí)的過(guò)程就不再贅述了,這里給出js的實(shí)現(xiàn),很簡(jiǎn)單的位操作基礎(chǔ)知識(shí)。原理啰嗦一句,就是把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的簡(jiǎn)單情況(第31位是符號(hào)位)。
相關(guān)文章
基于javascript實(shí)現(xiàn)句子翻牌網(wǎng)頁(yè)版小游戲
這篇文章主要介紹了基于javascript實(shí)現(xiàn)句子翻牌網(wǎng)頁(yè)版小游戲的相關(guān)資料,需要的朋友可以參考下2016-03-03JavaScript計(jì)算字符串中特定字符出現(xiàn)次數(shù)的實(shí)例詳解
在JavaScript編程中,經(jīng)常會(huì)遇到需要計(jì)算字符串中特定字符出現(xiàn)次數(shù)的情況,在本文中,我將分享兩個(gè)簡(jiǎn)單的JavaScript函數(shù),用于計(jì)算字符串中特定字符出現(xiàn)的次數(shù),需要的朋友可以參考下2023-11-11JS中setTimeout和setInterval的最大延時(shí)值詳解
這篇文章主要介紹了JS中setTimeout和setInterval的最大延時(shí)值的相關(guān)資料,文中通過(guò)示例代碼介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-02-02基于JavaScript實(shí)現(xiàn)Json數(shù)據(jù)根據(jù)某個(gè)字段進(jìn)行排序
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)Json數(shù)據(jù)根據(jù)某個(gè)字段進(jìn)行排序的相關(guān)資料,需要的朋友可以參考下2015-11-11js控制iframe的高度/寬度讓其自適應(yīng)內(nèi)容
這篇文章主要介紹了如何使用js控制iframe的高度/寬度讓其自適應(yīng)內(nèi)容,需要的朋友可以參考下2014-04-04uploadify在Firefox下丟失session問(wèn)題的解決方法
在用uploadify上傳插件時(shí)遇到了一個(gè)問(wèn)題,在讀session時(shí)認(rèn)為沒(méi)有權(quán)限而被攔截了,后來(lái)在后臺(tái)打印登錄時(shí)產(chǎn)生session的id和上傳時(shí)讀取session的id,解決方法如下,感興趣的朋友可以了解下2013-08-08JavaScript使用canvas繪制隨機(jī)驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了JavaScript使用canvas繪制隨機(jī)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02js判斷文件格式及大小的簡(jiǎn)單實(shí)例(必看)
下面小編就為大家?guī)?lái)一篇js判斷文件格式及大小的簡(jiǎn)單實(shí)例(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10