亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

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

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

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

前言

因為之前一直忽略的就是所有語言中關于位操作,覺得用處并不多,可能用到也非常簡單的用法,但是其實一直忽略的是它們的用處還是非常大的,下面先回顧一下位操作符的基礎

位操作符

與操作:

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

關于上述知識的一個應用實例

可能這個例子在實際中用并不是特別嚴謹,但是也提供了我們寫代碼的一種思路

這里拿微博或者qq用戶的特權為例子:

一個qq號可以用VIP會員,SVIP超級會員,藍鉆用戶,黃鉆用戶,紅鉆用戶....

我們通常的想法可能是如果數據庫中存儲自己會給用戶存這個字段表示這個用戶開通了哪些特權

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

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()

}

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

package main

import (
  "fmt"
)

type users struct {
  name string
  flag uint8
}

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

// setFlag 用于設置用戶開通了哪些特權
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 用于判斷用戶是否開通某項特權
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()
}

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

附常見的>>右移 左移 感覺右移左移應該也是非常常見的使用了

繼續看例子:

package main

import "fmt"

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

進行轉化為二進制 然后向左或者向右移動。

總結

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

您可能感興趣的文章:
  • golang簡單位運算示例

標簽:阿壩 泰安 瀘州 滄州 駐馬店 晉中 東營 昭通

巨人網絡通訊聲明:本文標題《Go語言中你所不知道的位操作用法》,本文關鍵詞  語,言中,你所,不知道,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言中你所不知道的位操作用法》相關的同類信息!
  • 本頁收集關于Go語言中你所不知道的位操作用法的相關信息資訊供網民參考!
  • 推薦文章
    国产网站免费视频| 国产不卡在线观看| 国产视频一区在线| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 韩国毛片免费| 欧美日本国产| 国产麻豆精品视频| 精品国产一区二区三区国产馆| 国产成人啪精品| 人人干人人插| 欧美激情一区二区三区在线| 国产亚洲精品成人a在线| 国产韩国精品一区二区三区| 午夜激情视频在线观看| 成人在免费观看视频国产| 久久99这里只有精品国产| 亚洲不卡一区二区三区在线| 国产一区二区高清视频| 999精品视频在线| 久久久成人网| 九九免费精品视频| 成人免费观看视频| 黄视频网站在线观看| 国产网站免费在线观看| 九九九网站| 精品视频在线看| 韩国三级视频网站| 九九九国产| 国产麻豆精品高清在线播放| 99久久精品费精品国产一区二区| 亚洲精品永久一区| 精品国产香蕉伊思人在线又爽又黄| 999久久狠狠免费精品| 国产亚洲免费观看| 亚洲精品影院久久久久久| 欧美激情一区二区三区视频| 亚洲精品久久玖玖玖玖| 国产网站免费视频| 国产亚洲免费观看| 国产不卡高清| 久久99青青久久99久久| 国产伦精品一区二区三区无广告| 日本特黄一级| 可以免费看污视频的网站| 亚洲wwwwww| 久久成人性色生活片| 精品久久久久久免费影院| 国产不卡高清| 中文字幕一区二区三区精彩视频| 久久精品欧美一区二区| 国产不卡福利| 精品视频在线观看免费| 久久99爰这里有精品国产| 99色播| 精品视频一区二区三区免费| 天天做人人爱夜夜爽2020毛片| 国产不卡在线观看视频| 亚洲 欧美 成人日韩| 日韩一级黄色片| 亚久久伊人精品青青草原2020| 国产一区二区精品久| 欧美激情一区二区三区在线播放 | 高清一级片| 国产福利免费观看| 99色视频在线| 999久久66久6只有精品| 午夜激情视频在线观看| 日韩一级黄色片| 韩国毛片基地| 日韩av成人| 一级毛片看真人在线视频| 日韩中文字幕在线亚洲一区| 精品国产一区二区三区久久久狼| 欧美a级片免费看| 国产高清视频免费观看| 久久精品免视看国产明星 | 国产一区精品| 欧美激情一区二区三区在线播放| 欧美激情一区二区三区在线播放| 国产麻豆精品| 你懂的日韩| 日韩中文字幕一区| 999精品影视在线观看| 韩国三级视频网站| 毛片高清| 国产a毛片| 中文字幕97| 日日爽天天| 午夜在线观看视频免费 成人| 久久国产影视免费精品| 欧美电影免费| 久久国产精品永久免费网站| 国产一区二区精品| 99色视频在线| 韩国三级视频网站| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 欧美爱爱动态| 欧美激情一区二区三区中文字幕| 99热精品在线| 日韩中文字幕在线播放| 四虎影视久久| 美女免费精品视频在线观看| 黄视频网站在线免费观看| 国产网站免费| 成人免费一级纶理片| 国产网站免费| 精品视频在线观看视频免费视频| 四虎影视久久久| 美女免费精品视频在线观看| 黄色免费三级| 国产91精品系列在线观看| 久久99欧美| a级毛片免费观看网站| 午夜欧美成人久久久久久| 精品国产香蕉伊思人在线又爽又黄| 成人免费网站视频ww| 国产视频一区二区在线观看| 青草国产在线| 国产精品自拍在线| 成人免费观看的视频黄页| 中文字幕Aⅴ资源网| 欧美a级成人淫片免费看| 99热精品一区| 可以免费看污视频的网站| 黄色福利片| 日韩专区一区| 四虎影视精品永久免费网站| 韩国三级一区| 欧美另类videosbestsex| 欧美激情一区二区三区在线 | 韩国毛片免费大片| 国产视频网站在线观看| 国产福利免费视频| 欧美激情一区二区三区在线| 可以免费看毛片的网站| 国产一区二区精品| 日韩欧美一二三区| 麻豆网站在线看| 欧美激情在线精品video| 超级乱淫黄漫画免费| 九九免费高清在线观看视频| 一级女性大黄生活片免费| 青青久久精品| 免费国产在线观看不卡| 99热精品在线| 日韩男人天堂| 欧美一区二区三区在线观看 | 青青久热| 精品视频在线看| 99色视频在线| 国产亚洲精品aaa大片| 免费毛片基地| 国产伦精品一区三区视频| 麻豆午夜视频| 你懂的福利视频| 99色视频在线观看| 国产a网| 精品视频一区二区三区| 国产福利免费观看| 日韩欧美一及在线播放| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 久草免费在线色站| 精品久久久久久影院免费| 欧美激情一区二区三区在线 | 日韩在线观看免费完整版视频| 久草免费在线色站| 国产国语对白一级毛片| 可以免费看污视频的网站| 日韩在线观看视频黄| 成人免费观看的视频黄页| 日韩免费在线视频| 国产欧美精品| 日韩avdvd| 国产一区国产二区国产三区| 欧美大片a一级毛片视频| 国产成人啪精品视频免费软件| 99色视频在线观看| 亚洲第一页乱| 国产伦精品一区二区三区无广告| 国产一区二区精品尤物| 中文字幕一区二区三区精彩视频 | 日韩中文字幕在线观看视频| 欧美a级片视频| 国产综合成人观看在线| 99色视频在线| 麻豆午夜视频| 国产成人啪精品视频免费软件| 成人免费网站视频ww| 久久久成人网| 日韩avdvd| 成人影院久久久久久影院| 亚洲第一页乱| 免费毛片基地| 精品视频在线看| 免费的黄色小视频| 久久99欧美| 日韩免费片| 999久久狠狠免费精品| 黄色免费网站在线| 可以免费在线看黄的网站|