zoukankan      html  css  js  c++  java
  • 从65535聊到计算机的二进制计算

    最近呢,在搞浮点数的问题,突然就想到了65535这个数字,悲剧的是竟然忘记了这个数字的由来..当然我是知道是代表最大值的..但是几个字节的最大值给忘了,怎么算处理的也给忘了..所以去网上重温一下二进制的计算因此才有了此帖的由来..

    首先是计算机的数据表示的单位:

    1位-----------> 1bit

    8位-----------> 8bit = 1Byte   俗称一个字节 ,用十六进制表示就是0xMM

    16位----------->16bit = 2Byte = 1Word    俗称一个字

    其次是二进制的计算方法       对照着下面的例子就很容易类比到自己的计算上

              

    值   位数 最大值   十进制值
    1111 4 23 24-1

    (为什么是24-1,可以参照高中的等比数列,我也忘记了.)

    然后继续

    char  ----> 1个字节----->1111 1111------------>无符号char的话最大值28-1,有符号的char的话最大值27-1

    int ------->4个字节----->1111 1111 * 1111 1111 * 1111 1111 * 1111 1111------->unsigned int的话最大值是232-1, int的话最大值是231-1

    另外再附赠一个字节对照表

    2n 十进制大小(就是我们所说的几bite) bite-->Byte-->M---->G
    20 1  
    21
    2  
    22 4  
    23 8  
    24 16  
    25 32  
    26 64  
    27 128  
    28 256  
    29 512  
    210 1024 * 1K  
    211 2048  *  2K  
    212 4096 * 4K  
    213 8192 * 8K  
    214 16318 * 16K  
    215 32768 * 32K  
    216 65536 * 64K  
    217 131072 * 128K  
    218 262144 * 256K  
    219 1310720 *512K   
    220 2621440 * 1024K * 1M  
    221 5242880 * 2048K *2M  
    222 10485760 *4096K  *4M  
    223 20971520 * 8192K *  8M  
    224 41943040 * 16318K * 16M  
    225 83886080 *32768K  *32M  
    226 167772160 * 65536K *  64M  
    227 335544320 *131072K * 128M  
    228 671088640 *262144K   *256M  
    229 1342177280*1310720K*215M  
    230 2684354560*2621440K*1024M*1G  

     对照着上面的表可以看出65535 = 65536 - 1 所以是1111 1111*1111 1111 即2Byte的最大值

  • 相关阅读:
    EBS Form菜单栏增加选项
    Oracle EBS 基础概念:弹性域-上下文字段
    EBS apps, applsys 的关系及密码更改
    设计模式-建造者模式
    微服务入门
    常见SQL编写和优化
    java 8 stream toMap问题
    mysql8.0.22在centos7.6下的简单安装
    mysql8的collate问题和修改
    springboot+security自定义登录-1-基础-自定义用户和登录界面
  • 原文地址:https://www.cnblogs.com/silentNight/p/5278084.html
Copyright © 2011-2022 走看看