go 数的进制与位运算

二进制

0,1
满2进1
在golang中, 不能直接使用二进制来表示一个整数, 它沿用了c的特点

十进制

0-9
满10进1

八进制

0-7
满8进1
以数字0开头表示

十六进制

0-9 A-F(A-F不区分大小写)
满16进1
以0x或0X开头表示

func main()  {
	var i int = 5
	//二进制输出
	fmt.Printf("%b \n", i)

	var j int = 011
	//八进制
	fmt.Println("j=", j)

	var k int = 0x11
	fmt.Println("k=", k)
}

运行结果

101 
j= 9
k= 17

位运算

func main()  {
	var a int = 1 >> 2
	var b int = -1 >> 2
	var c int = 1 << 2
	var d int = -1 << 2
	fmt.Println("a=", a)
	fmt.Println("b=", b)
	fmt.Println("c=", c)
	fmt.Println("d=", d)
}

运行结果

a= 0
b= -1
c= 4
d= -4
	fmt.Println(2&3)
	fmt.Println(2|3)
	fmt.Println(13&7)
	fmt.Println(5|4)
	fmt.Println(-3^3)

运行结果

2
3
5
5
-2

原码,反码,补码

  • 二进制的最高位是符号位: 0表示正数, 1表示负数
  • 正数的原码,反码,补码都一样
  • 负数的反码=它的原码符号位不变,其它位取反
数字原码反码补码
10000 00010000 00010000 0001
-11000 00011111 11101111 1111
  • 负数的补码=它的反码+1
  • 0的反码,补码都是0
  • 在计算机运算的时候,都是以补码的方式来运算的

位运算符和移位运算符

位运算符

运算符运算规则
按位与 &有0得0, 全1得1
按位或 |有1得1, 全0得0
按位异或 ^相同得0, 不同得1
	fmt.Println(2&3)
	fmt.Println(2|3)
	fmt.Println(2^3)
	fmt.Println(-2^2)

移位运算符

运算符运算规则
右移运算符 >>低位溢出,符号位不变,并用符号位补溢出得高位
左移运算符 <<符号位不变, 低位补0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuxingge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值