请教下 golang 的>> <<运算符 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
holinhot
V2EX    Go 编程语言

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

  •  
  •   holinhot 2019-06-05 04:35:20 +08:00 4079 次点击
    这是一个创建于 2320 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    一搜就有的答案,发帖子问不被喷才怪了~~
    holinhot
        27
    holinhot  
    OP
       2019-06-05 14:47:52 +08:00
    @mason961125 python php 用了很多年了 从没用过位移运算
    salamanderMH
        28
    salamanderMH  
       2019-06-05 14:50:07 +08:00
    位运算
    holinhot
        29
    holinhot  
    OP
       2019-06-05 14:50:44 +08:00
    @HuasLeung 简单明了
    amon
        30
    amon  
       2019-06-05 14:54:53 +08:00
    不厚道地说一句,这水平用 go 可能用错了。。。
    flxxy
        31
    flxxy  
       2019-06-05 15:15:03 +08:00 via Android
    兄弟位运算符都没见过,怎么学的啊!!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     923 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 22:15 PVG 06:15 LAX 15:15 JFK 18:15
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86