Golang Go语言中的>> <<运算符请教
Golang Go语言中的>> <<运算符请教
这个运算符是怎么计算的,
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
更多关于Golang Go语言中的>> <<运算符请教的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
右移 左移 不知道么?
而且很多语言都这样写的啊
位运算啊。。
可以这样记:左移 n 位等同于乘以 2 的 n 次幂
emmm 3*2=6
看标题我以为这个运算符有坑,进来一看。。。是我多虑了。
我记得是有坑的 右移带符号的数 左边会补齐符号
这是基础中的基础吧。。
太可怕了,现在学写 Go 的都不用学任何的计算机基础了
位运算了解一下,跟语言无关
楼主发的贴……大概是把 V 站当狗哥了……
还以为<< >>是啥高级功能,居然跟 C 一个样,太意外了
如果是学的第一门语言,先跑起来,后补基础,也无所谓。
右移本来就是这样设计,算术右移了解一下
培训班严重拉低了程序员的门槛
这点基础都不要了吗?写什么代码啊
过分了 兄弟
左右移位运算啊,天那
兄弟连基础都没学过吗?
因为这玩意就没有讲解的必要.总不能把=-*/都教一遍吧.
位移运算符在日常使用中频率非常低吧,感觉不会也正常
左移一位,等于乘以 2,3 乘以 2 就是 6
#23 看做什么了,如果和硬件强相关的话,应该会用到很多。
https://www.google.com/search?q=%3C%3C%E8%BF%90%E7%AE%97%E7%AC%A6
一搜就有的答案,发帖子问不被喷才怪了~~
python php 用了很多年了 从没用过位移运算
位运算
不厚道地说一句,这水平用 go 可能用错了。。。
兄弟位运算符都没见过,怎么学的啊!!
在Go语言中,>>
和 <<
是位运算符,分别用于执行右移和左移操作。这些运算符对整数类型(如 int
, uint
, int8
, uint32
等)的二进制表示进行操作。
-
左移运算符
<<
:- 将一个数的各二进制位全部左移若干位,由操作符右边的数指定移动的位数。
- 左移一位相当于乘以2,因为二进制数向左移动一位会在最低位补0。
- 例如,
5 << 2
的结果是20
,因为5
(二进制101
)左移两位变成10100
(二进制),即20
(十进制)。
-
右移运算符
>>
:- 将一个数的各二进制位全部右移若干位,由操作符右边的数指定移动的位数。
- 右移一位相当于除以2(对于无符号整数),因为二进制数向右移动一位会丢弃最低位。
- 对于有符号整数,右移通常执行算术右移,即符号位(最高位)会被复制来填充空出的位。
- 例如,
20 >> 2
的结果是5
,因为20
(二进制10100
)右移两位变成101
(二进制),即5
(十进制)。
在使用这些运算符时,需要注意移位操作的位数不应超过操作数的位数,否则可能导致未定义行为或运行时错误。此外,了解移位操作对性能和代码可读性的影响也很重要。