• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

40_Go基础_1_7位运算

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 1 package main
 2 
 3 import "fmt"
 4 
 5 func main() {
 6     /*
 7         位运算符:
 8             将数值,转为二进制后,按位操作
 9         按位&:
10             对应位的值如果都为1才为1,有一个为0就为0
11         按位|:
12             对应位的值如果都是0才为0,有一个为1就为1
13         异或^:
14             二元:a^b
15                 对应位的值不同为1,相同为0
16             一元:^a
17                 按位取反:
18                     1--->0
19                     0--->1
20         位清空:&^
21                 对于 a &^ b
22                     对于b上的每个数值
23                     如果为0,则取a对应位上的数值
24                     如果为1,则结果位就取0
25 
26         位移运算符:
27         <<:按位左移,将a转为二进制,向左移动b位
28             a << b
29         >>: 按位右移,将a 转为二进制,向右移动b位
30             a >> b
31     */
32 
33     a := 60
34     b := 13
35     /*
36         a: 60 0011 1100
37         b: 13 0000 1101
38         &     0000 1100
39         |     0011 1101
40         ^      0011 0001
41         &^    0011 0000
42 
43 
44         a : 0000 0000 ... 0011 1100
45         ^   1111 1111 ... 1100 0011
46     */
47     fmt.Printf("a:%d, %b\n", a, a) // a:60, 111100
48     fmt.Printf("b:%d, %b\n", b, b) // b:13, 1101
49 
50     res1 := a & b
51     fmt.Println(res1) // 12
52 
53     res2 := a | b
54     fmt.Println(res2) // 61
55 
56     res3 := a ^ b
57     fmt.Println(res3) // 49
58 
59     res4 := a &^ b
60     fmt.Println(res4) // 48
61 
62     res5 := ^a
63     fmt.Println(res5) // -61
64 
65     c := 8
66     /*
67         c : ... 0000 1000
68               0000 100000
69         >>        0000 10
70     */
71     res6 := c << 2
72     fmt.Printf("%d,%b\n", res6, res6) // 32,100000
73 
74     res7 := c >> 2
75     fmt.Printf("%d,%b\n", res7, res7) // 2,10
76 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go切片发布时间:2022-07-10
下一篇:
Golangbash脚本自动创建一个go工程发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap