zoukankan      html  css  js  c++  java
  • 【第二次JAVA课,java语法基础】原码、反码、补码

      首先是机器码这个概念,能储存信息一直是计算机的优点,但一直以来,计算机都是用二级制来表示一切数据,为了方便存储,必须要用合理的方式安排这些数据,所以要用到原码、反码、补码这三个概念。

    一切数据都是0和1

      原码是二进制的数据加上一个符号位,比如8位二进制中,

         [+1]原 = 0000 0001,

         [-1]原 = 1000 0001,

      这样就能表示一个byte的数据,就很方便。这样想要表示基本形式就只用相对位数的二进制就可以了。 但坏处是不好表示0,必须有两种 +0 和 -0 ,同时运算加减法不方便,所以有了补码。

    基本类型 占据空间大小 取值范围 默认值
    boolean 不确定 true/false 0
    byte 一个字节 -128----127 0
    int 4个字节 -2^31-2^31-1 0
    short 2个字节 -2^15-2^15-1 0
    long 8个字节 -2^63-2^63-1 0L
    char 2个字节   u0000
    float 4个字节 -2^128-2^128 o.oF
    double 8个字节 -2^1024-2^1024 0.0D

     

     

     

     

     

     

      

     

     

       反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

       可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算。补码的存在就是解决了加减运算的问题。

     

      补码的表示方法,在正数时和原码一样,在负数时就是原码的各个位取反,然后最低位加1。使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。而且使用补码, 不仅仅修复了0的符号以及存在两个编码的问题,,而且还能够多表示一个最低数。 这就是为什么8位二进制,,使用原码或反码表示的范围为[-127, +127], 而使用补码表示的范围为[-128, 127]。

    溢出问题

      计算机中的数值是以补码形式存储的,当给某个数据类型的变量赋值一个超出其范围的值,可以将其看称“两个此数据类型范围之内的值的和”,溢出的数据是从另一端的极值开始算的,转圈。

  • 相关阅读:
    C#面向对象(二)之抽象类实现多态
    JavaWeb 学习0010-今日问题 2016-12-3
    JavaWeb 学习008-今日问题(非空验证尚未解决) 2016-12-2
    JavaWeb 学习007-4个页面,5条sql语句(添加、查看、修改、删除)2016-12-2
    JavaWeb 学习006-4个页面,5条sql语句(添加、查看、修改、删除)
    JavaWeb 学习005-4个页面,5条sql语句(添加、查看、修改、删除)
    JavaWeb 学习004-增删改查的编写
    JavaWeb 学习003-简单登录页面功能实现
    JavaWeb 学习001-登录页面-Servlet
    JavaWeb 学习001-登录页面
  • 原文地址:https://www.cnblogs.com/limitCM/p/9751372.html
Copyright © 2011-2022 走看看