数据单位

MB 和 Mb 有啥区别?

Posted by hurshi on 2021.03.06

单位

  • 比特(bit):最小单位,由 0/1 组成;
  • 字节(Byte):1 Byte = 8 bit;

日常使用

  1. 一个英文字母占用 1 Byte;
  2. 一个中文汉字占用 3 Byte(UTF-8编码);
  3. Java 中 int 型占用 4 Byte
  4. 日常所说的 100M 宽带指的是 100Mbps 的宽带,而我们说的下载速度是 MB/s(MBps);这之间有8倍的差别;
    1. Mbps:兆比特每秒
    2. MB/s:兆字节每秒

进阶

  1. Java 中 int 占用4个字节,合32位(bit)。最高位用一区分“正负”,所以它有31位可以用来表示数字,从0开始能表示 2^31个数字,所以Integer.MAX_VALUE = 2^31-1 = 2147483647;

    相应的,Short 占用2个字节16位,Short.MAX_VALUE = 2^15-1 = 32767;

  2. 2038 问题,因为用 4字节 来存储时间戳,Integer.MAX_VALUE = 2147483647 格式化成时间就是 2038-01-19 11:14:07。