没题目

本文介绍了位运算符`<<`和`>>`在Java和C++中的应用,特别是在表示整数最大值和最小值时的作用。`1<<31-1`表示将1左移31位,得到int类型的最大正整数;而`-1<<31`则用于表示int类型的最小负整数。在Go语言中,对于int64类型的整数,同样可以运用此原理找到最大值和最小值。位运算中的左移`<<`是将数字向左移动指定位数,右侧补0;右移`>>`则是向右移动,根据数字正负决定最高位补0或1。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

“<<&&>>” 详解

Java和c++中int占四个字节,也就是32位,其中第一位(高位)为符号为(1<<31-1)表示1左移31位,使得符号位为1,其他位为0,再将左移后的结果减一就使得符号位为0,其他位都为1,即为int表示的有符号数的最大整数。

例如 :

Go语言中:

	math.MaxInt32 // 实际值:1<<31-1
	math.MinInt32 // 实际值:-1<<31(1向左移动31位,负号加在前面

       (int默认是int64)
	math.MaxInt64
	math.MinInt64

说明:
<<为位运算中的左移,a<<b表示a向左移动b位,移动后在末尾最低位补0,如1<<2得到100,即10进制的4
对应的>>为位运算中的右移,a>>b表示a向右移动b位,与左移不同的是,如果a为负数,右移后在最高位补1,如果a为正数,右移后在最高位补0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值