java >>1得意思是二进制右移一位。数被除2不取余
比如1的二进制是1
2得二进制是10
3的二进制是11
10右移一位变成了1。十进制来看就是2除2变成了1。
11右移一位也变成了1。十进制来看就是3除2被去掉余数变成了1。
在来类比十进制的数。
十进制的100右移一位变成10,是被除10。
所以二进制右移一位就是被除二
同理:
八进制右移一位就是除8
十六进制右移一位就是除16
java >>1得意思是二进制右移一位。数被除2不取余
比如1的二进制是1
2得二进制是10
3的二进制是11
10右移一位变成了1。十进制来看就是2除2变成了1。
11右移一位也变成了1。十进制来看就是3除2被去掉余数变成了1。
在来类比十进制的数。
十进制的100右移一位变成10,是被除10。
所以二进制右移一位就是被除二
同理:
八进制右移一位就是除8
十六进制右移一位就是除16