V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
holinhot

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

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

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

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