java实现js取反_特定位取反(js实现)
去華為面試的時候,沒有做好準(zhǔn)備工作;面試的流程沒有問清也沒有查,結(jié)果一過去就讓上機(jī)做題,著實(shí)有點(diǎn)措手不及。筆者是擅長前端的Java Web工程師啊,基本的底層編程知識早已生疏了。機(jī)試題碰到了這道位運(yùn)算的題目,按理說是非常簡單的,原理筆者也很清楚,但是由于實(shí)在是好多年沒有搞過位運(yùn)算了,Java位運(yùn)算更是沒有操作過,所以結(jié)果實(shí)在是不體面……
機(jī)試時間規(guī)定是一個小時,語言可選C或Java還有個什么腳本語言,筆者花了將近三個小時,才用Java勉強(qiáng)把題做出來了,慚愧慚愧……回來就用JS重新實(shí)現(xiàn)了一個簡單版本,今天整理貼出來。
題目是:循環(huán)輸入每組兩個數(shù)hex和n(0<=n<31),hex是一個16進(jìn)制的數(shù)字,我們要做的是將hex的第n位取反,然后以16進(jìn)制的形式輸出對應(yīng)的結(jié)果。
筆者折騰兩個多小時的過程就不再贅述了,這里給出js的實(shí)現(xiàn),很簡單的位操作基礎(chǔ)知識。原理啰嗦一句,就是把1按比特位左移n位,然后跟原數(shù)異或就行了:
function bitOper(hex, n){
var num = parseInt(hex);
num ^= (1<
return num.toString(16);
}
console.log(bitOper(0x1234, 3)); //123c由于js整數(shù)類型只有32位的限制,上述示例代碼僅支持n<31的簡單情況(第31位是符號位)。
原文:http://blog.csdn.net/neareast/article/details/23567335
總結(jié)
以上是生活随笔為你收集整理的java实现js取反_特定位取反(js实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java nio proactor_re
- 下一篇: php 修改css 不生效,HTML外部