婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Go語言中你所不知道的位操作用法

Go語言中你所不知道的位操作用法

熱門標(biāo)簽:浙江高頻外呼系統(tǒng)多少錢一個(gè)月 黃岡人工智能電銷機(jī)器人哪個(gè)好 惠州電銷防封電話卡 汕頭小型外呼系統(tǒng) 阿里云ai電話機(jī)器人 鄭州亮點(diǎn)科技用的什么外呼系統(tǒng) 濱州自動(dòng)電銷機(jī)器人排名 釘釘有地圖標(biāo)注功能嗎 建造者2地圖標(biāo)注

前言

因?yàn)橹耙恢焙雎缘木褪撬姓Z言中關(guān)于位操作,覺得用處并不多,可能用到也非常簡單的用法,但是其實(shí)一直忽略的是它們的用處還是非常大的,下面先回顧一下位操作符的基礎(chǔ)

位操作符

與操作:

1 1 = 1

1 0 = 0

0 1 = 0

0 0 = 0

或操作:!

1 | 1 = 1

1 | 0 = 1

0 | 1 = 1

0 0 = 0

異或:^

1 ^ 1 = 0

1 ^ 0 = 1

0 ^ 1 = 1

0 ^ 0 = 0

左移:

1 10 = 1024

1 20 = 1M

1 30 = 1G

右移:>>

1024 >> 10 = 1

1024 >>1 = 512

1024 >>2 = 256

關(guān)于上述知識的一個(gè)應(yīng)用實(shí)例

可能這個(gè)例子在實(shí)際中用并不是特別嚴(yán)謹(jǐn),但是也提供了我們寫代碼的一種思路

這里拿微博或者qq用戶的特權(quán)為例子:

一個(gè)qq號可以用VIP會(huì)員,SVIP超級會(huì)員,藍(lán)鉆用戶,黃鉆用戶,紅鉆用戶....

我們通常的想法可能是如果數(shù)據(jù)庫中存儲(chǔ)自己會(huì)給用戶存這個(gè)字段表示這個(gè)用戶開通了哪些特權(quán)

我們在代碼中的寫法可能也是如下所示:

package main

import (
 "fmt"
)

type users struct {
 name string
 flag uint8
 vip bool
 svip bool
 blue bool
 red bool
 yellow bool
}

func setVip(user users) users {
 user.vip = true
 return user
}

func isVip(user users) {
 if user.vip {
  fmt.Println("user is vip")
 } else {
  fmt.Println("user is not vip")
 }
}

func binaryTest() {
 var user users
 user.name = "test01"
 user.vip = true
 isVip(user)
 user.vip = false
 isVip(user)
}

func main() {
 binaryTest()

}

這種實(shí)現(xiàn)方式也可以,但是明顯我們需要為每個(gè)類型都做操作,并且如果以后又有更多的各種各樣的會(huì)員和鉆有需要添加新的,所以并不是最佳方法,下面我們通過位操作來實(shí)現(xiàn)上述的功能,代碼如下:

package main

import (
  "fmt"
)

type users struct {
  name string
  flag uint8
}

// 這里通過位移的方式默認(rèn)00000 從左邊一次為vip,svip,blue,red,yellow
const (
  vip  = 1
  svip = (1  1)
  blue = (1  2)
  red  = (1  3)
  yello = (1  4)
)

// setFlag 用于設(shè)置用戶開通了哪些特權(quán)
func setFlag(user users, isSet bool, typeFlag uint8) users {
  if isSet == true {
    user.flag = user.flag | typeFlag
  } else {
    user.flag = user.flag ^ typeFlag
  }
  return user
}

//isFlag 用于判斷用戶是否開通某項(xiàng)特權(quán)
func isFlag(user users, typeFlag uint8) bool {
  result := user.flag  typeFlag
  return result == typeFlag
}

func binaryTest() {
  var user users
  user.name = "coder"
  user.flag = 0

  //判斷用戶是否是vip
  result := isFlag(user, vip)
  fmt.Printf("user is Vip:%t\n", result)

  //給用戶開通vip,并看用戶是否開通vip
  user = setFlag(user, true, vip)
  result = isFlag(user, vip)
  fmt.Printf("user is Vip:%t\n", result)

  //取消用戶的vip,并查看用戶是否還是vip
  user = setFlag(user, false, vip)
  result = isFlag(user, vip)
  fmt.Printf("user is Vip:%t\n", result)
}

func main() {
  binaryTest()
}

上面代碼就是一種位運(yùn)算一種非常巧妙的用法,當(dāng)新添加各種特權(quán)的時(shí)候只需要在最開始定義的常亮那里添加一行代碼即可,就可以直接實(shí)現(xiàn)對這種特權(quán)的設(shè)置和取消,以及查看是否開通。

附常見的>>右移 左移 感覺右移左移應(yīng)該也是非常常見的使用了

繼續(xù)看例子:

package main

import "fmt"

func main() {
  x := 2
  y := 4
  fmt.Println(x1)
  fmt.Println(y>>1)
}output:4 2

進(jìn)行轉(zhuǎn)化為二進(jìn)制 然后向左或者向右移動(dòng)。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • golang簡單位運(yùn)算示例

標(biāo)簽:阿壩 泰安 瀘州 滄州 駐馬店 晉中 東營 昭通

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go語言中你所不知道的位操作用法》,本文關(guān)鍵詞  語,言中,你所,不知道,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go語言中你所不知道的位操作用法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Go語言中你所不知道的位操作用法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲精选视频在线| 爽好久久久欧美精品| 亚洲综合在线视频| 亚洲电影在线免费观看| 亚洲成精国产精品女| 久久66热re国产| 99在线视频精品| 91福利国产精品| 国产亚洲欧洲一区高清在线观看| 中文字幕一区二区三区乱码在线| 五月天亚洲婷婷| 国产盗摄一区二区三区| 99久久精品国产麻豆演员表| 在线播放日韩导航| 国产人久久人人人人爽| 亚洲一二三区视频在线观看| 成人免费va视频| 欧美一级夜夜爽| 亚洲成人动漫在线免费观看| 国产成人午夜视频| 欧美一级高清片| 亚洲成人激情综合网| av爱爱亚洲一区| 国产女主播在线一区二区| 偷窥国产亚洲免费视频| 色综合天天综合色综合av | 首页亚洲欧美制服丝腿| 国产成人啪午夜精品网站男同| 欧美性猛片xxxx免费看久爱| 国产精品美女久久久久aⅴ国产馆| 日韩vs国产vs欧美| 91久久精品午夜一区二区| 国产欧美一区二区精品婷婷| 久久69国产一区二区蜜臀 | 国产盗摄女厕一区二区三区| 欧美精品亚洲一区二区在线播放| 中文成人综合网| 久久超级碰视频| 欧美美女bb生活片| 亚洲一二三区视频在线观看| 国产福利精品一区| 精品国精品国产| 激情综合色综合久久| 欧美特级限制片免费在线观看| 国产精品色哟哟| 国模套图日韩精品一区二区| 欧美日韩在线综合| 亚洲综合免费观看高清完整版| a美女胸又www黄视频久久| 久久精品一区四区| 成人av在线观| 亚洲欧美激情插| 日本道精品一区二区三区| 亚洲视频免费观看| 97成人超碰视| 亚洲国产精品久久久久婷婷884| 欧洲av在线精品| 日韩在线a电影| 日韩免费性生活视频播放| 国产在线精品一区二区三区不卡 | 亚洲一区二区精品久久av| 欧洲亚洲国产日韩| 亚洲色图都市小说| 色国产综合视频| 亚洲品质自拍视频| 欧美亚洲高清一区二区三区不卡| 一区视频在线播放| 在线亚洲一区观看| 日韩不卡手机在线v区| 精品毛片乱码1区2区3区| 黄页视频在线91| 国产女同互慰高潮91漫画| 国产电影一区二区三区| 亚洲黄一区二区三区| 欧美丰满美乳xxx高潮www| 国产自产视频一区二区三区| 中文字幕精品一区二区三区精品 | 亚洲女人的天堂| 91麻豆精品国产综合久久久久久| 久久精品国产久精国产| 国产精品电影一区二区| 欧美一区欧美二区| 成人性生交大合| 日韩国产在线一| 国产日韩亚洲欧美综合| 欧美系列一区二区| 国产aⅴ精品一区二区三区色成熟| 亚洲天天做日日做天天谢日日欢| 一本到一区二区三区| 污片在线观看一区二区| 欧美成人精品高清在线播放| 成人av网址在线| 麻豆国产一区二区| 亚洲蜜臀av乱码久久精品蜜桃| 日韩手机在线导航| 色噜噜狠狠成人网p站| 国产一区二区福利视频| 亚洲国产精品久久久男人的天堂| 久久精品水蜜桃av综合天堂| 欧美日本一区二区| 色综合久久天天| 国产成人av网站| 精品一区二区三区免费观看| 亚洲一区二区三区小说| 国产精品天美传媒| 久久久精品影视| 日韩精品在线一区| 777久久久精品| 欧美体内she精高潮| 99久久国产综合色|国产精品| 天天色 色综合| 亚洲国产另类av| 亚洲欧美日韩在线不卡| 亚洲色图欧美在线| 中文字幕成人av| 欧美国产欧美综合| 久久精品免视看| www国产成人免费观看视频 深夜成人网| 欧洲精品在线观看| 色婷婷狠狠综合| 97久久人人超碰| 成人精品视频一区二区三区尤物| 精品系列免费在线观看| 奇米影视在线99精品| 三级在线观看一区二区| 亚洲午夜在线电影| 性做久久久久久久久| 亚洲国产精品麻豆| 亚洲成av人片www| 亚洲午夜精品17c| 亚洲国产日韩在线一区模特| 亚洲五码中文字幕| 五月天激情小说综合| 日本怡春院一区二区| 蜜臀精品久久久久久蜜臀| 美女视频黄久久| 九九国产精品视频| 国产精品性做久久久久久| 国产成人一区二区精品非洲| 国产91高潮流白浆在线麻豆 | 成人毛片视频在线观看| 99久久伊人精品| 成人av在线资源网| 久久av资源站| 免费观看在线色综合| 精品一区二区三区在线播放视频| 国产成人aaaa| 欧美在线观看禁18| 91精品国产综合久久久久| 制服丝袜亚洲精品中文字幕| 精品99一区二区| 中文字幕日韩一区| 午夜伊人狠狠久久| 国模无码大尺度一区二区三区| 成人一区在线看| 欧美色老头old∨ideo| 欧美大片顶级少妇| 亚洲麻豆国产自偷在线| 日韩一区精品视频| 高清成人免费视频| 欧美偷拍一区二区| 久久精品亚洲一区二区三区浴池| 亚洲你懂的在线视频| 久久爱www久久做| 成人精品视频一区二区三区 | 91成人在线观看喷潮| 欧美网站一区二区| 欧美日韩成人在线| 欧美一区二区视频观看视频| 亚洲精品一区二区三区精华液| 久久免费的精品国产v∧| 精品一区中文字幕| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 精品国产凹凸成av人网站| 精品系列免费在线观看| 精品一区二区三区免费播放| 色婷婷综合久久久久中文| 欧美性一区二区| 久久这里只有精品首页| 一区二区三区四区不卡在线 | 日韩精品一卡二卡三卡四卡无卡| 国产白丝网站精品污在线入口| 在线观看一区二区视频| 国产精品卡一卡二卡三| 精品一区二区三区在线播放| 在线亚洲免费视频| 国产精品网站导航| 久久不见久久见中文字幕免费| 在线观看欧美日本| 久久久久久久久久久久久夜| 婷婷综合另类小说色区| 欧亚一区二区三区| 最近日韩中文字幕| 成人午夜大片免费观看| 精品久久久久久久久久久久久久久| 五月天激情综合| 欧美日韩中文国产| 亚洲一区二区视频在线| 91美女片黄在线观看91美女| 国产欧美日韩精品a在线观看|