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

js實現(xiàn)無符號整數(shù)按位取反方式

 更新時間:2026年03月16日 08:38:57   作者:攻城獅YanGo  
文章討論了有符號和無符號整數(shù)的區(qū)別,以及如何在JavaScript中實現(xiàn)無符號整數(shù)的取反操作,通過一個簡單的示例代碼,展示了如何將0和1進(jìn)行反轉(zhuǎn)

前言

最近有一段時間沒寫文章了,工作上比較忙,剛好今天有人問到我這個問題,我就去補(bǔ)了一下功課。然后在js上實現(xiàn)了一下。

什么是無符號整數(shù)和有符號整數(shù)?

  • 有符號就是最高位是符號位,其余的位是數(shù)據(jù)位。
  • 無符號就是所有位都是數(shù)據(jù)位。

比如char類型是8位的,其中最高位是符號位1=0b00000000,-1=0b11111111(這里涉及到了補(bǔ)碼),它能表示的范圍是-128~+127。

unsigned char 是無符號字符型也是8位,它沒有符號位,最高位是數(shù)據(jù)位,比如1=0b00000001,255=0b11111111,它的范圍是0~255。

嗯,大概就是這么個意思了。

其實要實現(xiàn)的功能就是比如: 無符號整數(shù)取反

  • 0b00110100
  • 0b11001011

對比一下很明白吧!0和1反過來了。

要怎么實現(xiàn)呢

簡單的處理方式,無非就是0變1,1變0嘛。

下面實現(xiàn)代碼:

/**
 * @msg: 
 * @param {number,string} hex 十六進(jìn)制數(shù)字或者字符
 * @param {string} len 位長度
 * @return {string} 返回十六進(jìn)制字符
 */
function unsignedToReverse(hex,len){
  try{
    let bitArr;
    if(typeof hex === 'number'){
      bitArr = parseInt(hex);
    } else if(typeof hex === 'string'){
      bitArr = parseInt(hex,16);
    } else {
      console.error("hex參數(shù)有誤")
      return;
    }
    bitArr = bitArr.toString(2).padStart(parseInt(len), "0").split('');
    let arr = [];
    // console.log(bitArr)
    bitArr.map((item,index) => {
      if(item == 1){
        arr[index] = 0
      } else if(item == 0){
        arr[index] = 1
      }
    })
    return "0x" + parseInt(arr.join(''),2).toString(16);
  } catch(err) {
    console.error("ERROR: %s",err)
  }
}

console.log(unsignedToReverse("0x38",8)) // 打印 0xc7

大概就這樣子。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

浮梁县| 沿河| 龙川县| 甘洛县| 江都市| 永胜县| 贵南县| 濉溪县| 天全县| 砚山县| 庄河市| 丰原市| 任丘市| 额尔古纳市| 西盟| 武陟县| 万安县| 阿拉尔市| 北票市| 墨玉县| 大同市| 周口市| 五台县| 怀集县| 稷山县| 丰台区| 阳新县| 连江县| 江川县| 奉贤区| 泽普县| 中方县| 汕尾市| 新建县| 玛纳斯县| 谷城县| 洪泽县| 额济纳旗| 东安县| 壶关县| 仁布县|