亚洲成a人片在线观看69,中文字幕免费无线观看,日韩精品无码一区二区三区四区,92精品国产自产在线观看直播,亚洲精品无码不卡在线观看屁,亚洲成av人片在www色猫咪

【Redis源碼】setbit命令

setbit命令對key所存儲的字符串值,設置指定偏移量上的比特位。

格式:

setbit key offset value

返回值: 返回指定偏移量原來(lái)存儲的位。

202011141941.png

如圖11-1所示,二進(jìn)制串“abc”在內存中是以011000010110001001100011來(lái)表示的,現在字符串第9比特位的值為1,如果想設置此值為0,需要經(jīng)過(guò)以下步驟。

  • 判斷offset是否合法,一個(gè)字節占8位,一個(gè)字符串最大長(cháng)度為512 MB,所以當offset/8大于512 MB時(shí)表示offset不合法。
  • bit位只可能是0或1,當出現其他字符時(shí)不合法,on表示輸入的value值。
if (on & ~1) {
        addReplyError(c,err);
        return;
    }
  • 因一個(gè)字節占8個(gè)比特位,所以修改第offset個(gè)比特位,需要先取出第offset/8個(gè)字節,賦值為byteval,offset/8賦值為byte。例如,要修改第9個(gè)比特位,需要先取出第2個(gè)字節。
byte = bitoffset >> 3;//一個(gè)字節是8位,現在需要除以8,以定位到第byte個(gè)字節上
byteval = ((uint8_t*)o->ptr)[byte];//取出第byte個(gè)字節
  • 當取出byteval之后,需要判斷原字符串第offset位上的值,供命令的返回值使用。將offset對8取模賦值為bit,bit表示byteval的從低位數第bit位。byteval與bit相與的結果如果大于0表示原比特為1,等于0表示原比特為0。
bit = 7 - (bitoffset & 0x7); //offset對8取模
    bitval = byteval & (1 << bit); //1<<bit位表示將1從低位向左移bit位,獲取到第bit位
  • 修改比特位的值。將byteval的從低位數第bit位強制賦值為1。on&0x1的值結果只能為0x1或0x0,將其左移bit位與byteval相或可以得出新的字節的值,o的第byte位賦值為新值便完成了字符串的設置比特位操作。
byteval &= ~(1 << bit); //1左移bit位,取反與原值相與,即將原值的低bit位賦值為0
    byteval |= ((on & 0x1) << bit); //on&0x1的值為要修改后的值,左移bit位,與原值相或
    ((uint8_t*)o->ptr)[byte] = byteval;


標 題:《【Redis源碼】setbit命令
作 者:zeekling
提 示:轉載請注明文章轉載自個(gè)人博客:浪浪山旁那個(gè)村

評論

取消
亚洲成a人片在线观看69,中文字幕免费无线观看,日韩精品无码一区二区三区四区,92精品国产自产在线观看直播,亚洲精品无码不卡在线观看屁,亚洲成av人片在www色猫咪 亚洲国产日韩精品福利| 又粗又硬又爽18级a片| 亚洲精品一区二区视频| 一区二区三区四区视频在线观看| 亚洲一级毛片完整高清| 亚洲日本欧美产综合在线| 亚洲精品在线第一页| 日韩精品毛片免费观看| 亚洲综合网一区二区三区| 亚洲免费一级网站| 99久久精品无码一区二区毛片| 亚洲无码精品人妻无遮挡久久久九| 99久久免费只有精品国产| 97人妻人人揉人人躁人人| 国产欧美精品午夜在线播放| 国产精品人成视频免费国产| 一区二区免费高清观看国产| 中文字幕日产无码网站| 中文字幕高清无码不卡在线| 国产日韩欧美′一区二区东京热| 伊人色综合久久天天人手人婷| 亚洲+国产+综合| 久久精品欧美日韩一区麻豆小说| 在线视频免费观看完整版高清| 亚洲AV无码乱码一级毛片| 中国中年女人色av| 成人版巜劳伦的性放荡id| 国产欧美亚洲精品a| 精品国产综合久久福利| 亚洲日韩黄色网站有哪些| 国产欧美日韩在线观看二| 中文字幕精品一区二区| 国产精品午夜福利不卡| 国产无码一区二区在线| 欧洲美洲无码精品Ⅴa| 最新无码国产在线视频2023| 欧美性猛交XXXX乱大交3| 欧美日本一本线欧美成播放放| 国产精品成人一区无码| 亚洲国产精品一区二区制服| 中文字幕无码中文字幕有码| http://sjzseo123.com http://szcyhf.com http://kxuanys.com http://zbitw.com http://qiyanzi.com http://591rencai.com