欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

20210524-JAVA中的int类型理解

程序员文章站 2022-06-04 09:09:10
...

JAVA中的int类型

  1. java中的int类型是4个字节,由32位组成
  2. java中的int的类型的本质是二进制,学会二进制就能很好理解int类型

正数

  1. 最小值&最大值
0000 0000 0000 0000 0000 0000 0000 0000=0
0111 1111 1111 1111 1111 1111 1111 1111= 2,147,483,647
# 2的31次方就是
1000 0000 0000 0000 0000 0000 0000 0000 
  • 第一位是符号位,正数只能为0,所以正数最大值就是2的31次方-1

负数

  1. 最小值&最大值
1000 0000 0000 0000 0000 0000 0000 0000 = -2,147,483,648
1111 1111 1111 1111 1111 1111 1111 1111 = -1

二进制表示正数和负数

  1. 二进制表示正数很简单,很符合我们的思维逻辑,1的位数越高,1的数量越大(除去最左位),说明这个数越大。
  2. 二进制表示负数=正数的反码+1
    • 示例:-1
正1:   0000 0000 0000 0000 0000 0000 0000 0001
反码: 1111 1111 1111 1111 1111 1111 1111 1110
反码+1 1111 1111 1111 1111 1111 1111 1111 1111 = -1
  1. 由于最左位表示的是符合位,因此如果不进行处理的话有两个零,一个是正零,一个是负零
正零: 0000 0000 0000 0000 0000 0000 0000 0000
负零: 1000 0000 0000 0000 0000 0000 0000 0000 
  • 但是有两个数表示零,是不是有点浪费?因此,计算机规定负数的零不是零是最小的负数,即-2,147,483,648

java中的左移和右移

  1. 左移是乘,右移是除
16 << 2  等于16乘以2的4次方
16 >> 2  等于16除以2的4次方
  • 左移和右移的本质也是通过二进制来表示出来的
  1. 无符号右移
    • 不管是正数还是负数,二进制向右移动时,左边一律由0填充,右边移动几位抹掉几位
-5>>>2:11111011------------->00111110

python中的int类型

  1. python中int类型很牛逼,可以无限大,由此可见int类型占4个字节,只是JAVA语言自己定义的