The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
holinhot

请教下 golang 的>> <<运算符

  •  
  •   holinhot · Jun 5, 2019 · 5017 views
    This topic created in 2718 days ago, the information mentioned may be changed or developed.

    这个运算符是怎么计算的,

    https://play.golang.org/p/FQZY2TJ8cvC

    package main

    import "fmt" const chunkSize int64 = 1 << 24 const chunkSize2 int64 = 3 << 1 func main() {

    fmt.Println("Hello, 世界")
    fmt.Println(chunkSize)
    fmt.Println(chunkSize2)
    

    }

    输出 Hello, 世界 16777216 6

    3<<1 怎么得出的 6

    31 replies  •  2019-06-05 15:15:03 +08:00
    holinhot
    holinhot
    OP
    Jun 5, 2019
    1
    rt
    mason961125
    mason961125
    Jun 5, 2019 via iPhone❤️11
    2
    0011 = 3
    0110 = 6
    我寻思着,写代码不要学点计算机基础吗?
    yyfearth
    yyfearth
    Jun 5, 2019
    3
    右移 左移 不知道么?
    而且很多语言都这样写的啊
    tomato1111
    tomato1111
    Jun 5, 2019
    4
    位运算啊。。
    BCy66drFCvk1Ou87
    BCy66drFCvk1Ou87
    Jun 5, 2019 via Android❤️5
    5
    可以这样记:左移 n 位等同于乘以 2 的 n 次幂
    emmm 3*2=6
    Citrus
    Citrus
    Jun 5, 2019 via iPhone❤️3
    6
    看标题我以为这个运算符有坑,进来一看。。。是我多虑了。
    sulinehk
    sulinehk
    Jun 5, 2019 via Android
    7
    我记得是有坑的 右移带符号的数 左边会补齐符号
    araraloren
    araraloren
    Jun 5, 2019
    8
    这是基础中的基础吧。。
    zonyitoo
    zonyitoo
    Jun 5, 2019❤️1
    9
    太可怕了,现在学写 Go 的都不用学任何的计算机基础了
    skiy
    skiy
    Jun 5, 2019 via Android
    10
    位运算了解一下,跟语言无关
    wyntalgeer
    wyntalgeer
    Jun 5, 2019
    11
    楼主发的贴……大概是把 V 站当狗哥了……
    befovy
    befovy
    Jun 5, 2019
    12
    搜了一下,好多 go 语言教程讲到操作符的时候,对位运算符一笔带过,初学者看到不懂的还是应该多在网上找找答案。
    pagxir
    pagxir
    Jun 5, 2019 via Android
    13
    还以为<< >>是啥高级功能,居然跟 C 一个样,太意外了
    nodwang
    nodwang
    Jun 5, 2019 via Android
    14
    @mason961125 如果是学的第一门语言,先跑起来,后补基础,也无所谓。
    neoblackcap
    neoblackcap
    Jun 5, 2019 via iPhone
    15
    @sulinehk 右移本来就是这样设计,算术右移了解一下
    xkeyideal
    xkeyideal
    Jun 5, 2019
    16
    培训班严重拉低了程序员的门槛
    darylc
    darylc
    Jun 5, 2019
    17
    这点基础都不要了吗?写什么代码啊
    mritd
    mritd
    Jun 5, 2019 via iPhone
    18
    过分了 兄弟
    zjyl1994
    zjyl1994
    Jun 5, 2019
    19
    左右移位运算啊,天那
    dabaibai
    dabaibai
    Jun 5, 2019 via iPhone
    20
    兄弟连基础都没学过吗?
    Vegetable
    Vegetable
    Jun 5, 2019
    21
    @befovy 因为这玩意就没有讲解的必要.总不能把=-*/都教一遍吧.
    bwangel
    bwangel
    Jun 5, 2019
    22
    https://book.douban.com/subject/5333562/

    老哥,向你推荐这本书。位运算以及数值的表示,第二章就有讲。
    pmispig
    pmispig
    Jun 5, 2019
    23
    位移运算符在日常使用中频率非常低吧,感觉不会也正常
    reus
    reus
    Jun 5, 2019
    24
    左移一位,等于乘以 2,3 乘以 2 就是 6
    mason961125
    mason961125
    Jun 5, 2019 via iPhone
    25
    @pmispig #23 看做什么了,如果和硬件强相关的话,应该会用到很多。
    keepeye
    keepeye
    Jun 5, 2019
    26
    https://www.google.com/search?q=%3C%3C%E8%BF%90%E7%AE%97%E7%AC%A6

    一搜就有的答案,发帖子问不被喷才怪了~~
    holinhot
    holinhot
    OP
    Jun 5, 2019
    27
    @mason961125 python php 用了很多年了 从没用过位移运算
    salamanderMH
    salamanderMH
    Jun 5, 2019
    28
    位运算
    holinhot
    holinhot
    OP
    Jun 5, 2019
    29
    @HuasLeung 简单明了
    amon
    amon
    Jun 5, 2019
    30
    不厚道地说一句,这水平用 go 可能用错了。。。
    flxxy
    flxxy
    Jun 5, 2019 via Android
    31
    兄弟位运算符都没见过,怎么学的啊!!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4820 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 01:52 · PVG 09:52 · LAX 17:52 · JFK 20:52
    ♥ Do have faith in what you're doing.