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

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

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

前言

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

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

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

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

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

嗯,大概就是這么個(gè)意思了。

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

  • 0b00110100
  • 0b11001011

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

要怎么實(shí)現(xiàn)呢

簡(jiǎn)單的處理方式,無非就是0變1,1變0嘛。

下面實(shí)現(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é)

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

相關(guān)文章

最新評(píng)論

离岛区| 河源市| 巴东县| 廉江市| 攀枝花市| 镇沅| 娄烦县| 开封县| 当涂县| 罗江县| 洪雅县| 两当县| 辰溪县| 苍溪县| 册亨县| 长阳| 博白县| 满城县| 齐齐哈尔市| 惠来县| 涟水县| 手游| 永定县| 皮山县| 宜州市| 广宗县| 宁海县| 池州市| 乌拉特中旗| 雷波县| 深圳市| 德州市| 长沙市| 涞源县| 蕉岭县| 安达市| 柏乡县| 湟中县| 锡林浩特市| 锡林浩特市| 涿州市|