java基础--数据类型

本文详细介绍了编程中的11种数据类型,包括基本类型如整型、浮点型和布尔型,以及引用类型如类接口数组。重点讨论了不同数据类型在内存中的存储形式,以及浮点数精度丢失的原因。同时涵盖了原码、反码、补码和移码等不同码制的概念及其在计算机存储中的应用。
摘要由CSDN通过智能技术生成
  • 数据类型(11种)         分为两类:

 一.基本数据类型 :整型 byte short long int

                                浮点类型 float double 

                                布尔类型 boolean

                                字符型  char

二.引用类型 :类 接口 数组 

但是每一个数据类型,都对应着不同的内存存储形式

eg: byte a = o   byte 为 8bit 位  即 00000000

      int a = o   int 为 32bit 位  即 00000000000000000000000000000000

      float a = 11.23  float 为 32bit 位 即 00000000000000000000000000000000

bit位分为数值位和字符位

  

  1. byte   --> 1 字节 = 8 bit(C语言)     --> 1 bit(符号位) + 7 bit(数值位)

    short  --> 2 字节 = 16 bit   --> 1 bit(符号位) + 15 bit(数值位)

    int      --> 4 字节 = 32 bit   --> 1 bit(符号位) + 31 bit(数值位)

    long   --> 8 字节 = 64 bit   --> 1 bit(符号位) + 63 bit(数值位)

    注:在高级语言中,char类型所占位数根据编码决定(默认16bit)

    float       --> 4 字节 = 32bit --> 1 bit(符号位) + 8 bit(阶码位) + 23 bit(数值位)

    double   --> 8 字节 = 64bit --> 1 bit(符号位) + 11 bit(阶码位) + 52 bit(数值位)

  2. 精度丢失

    用浮点数存储数据的时候会存在精度丢失

    原因:使用十进制计算,但结果用二进制存储。

    首先我们来看一下:十进制的0.2用二进制如何存储

    如上表所示,0.2无法用二进制数精确表示。

    对这个现象进行解释:十进制把一个定长的距离拆分成10份,而二进制仅仅把距离拆分成两份,因此,存在十进制小数无法用二进制表示。

    计算机对数据存储方式的分析
  • 码制:码制分为原码、反码、补码、移码四种编码方式。计算机当中存储数据使用补码。原码与反码都会出现问题。在学习码制之前,我们首先要对机器数与真值有一个基本的了解。

  • 机器数 :

  • 机器数是将符号数字化的数,是数字在计算机中的二进制表示形式。对于符号位,正数为0,负数为1。机器数的大小会受到机器字长的限制,字长即为机器内部一次所能表示的二进制位数。

  • 真值
    真值即为真实数值。由于存在符号位,机器数所表示的形式值并非真实值。例如:1000 0010的最高位1代表负,该机器数的真实数值为-2,并非形式值130。因此,将机器数的真实数值称为真值。

    原码
    原码即(符号位)+(真值的绝对值)。原码不能直接参与运算。

    举例:1 + (-1) = 0  -->  0000 0001 + 1000 0001 = 1000 0010 (十进制中代表-2)

    反码
    正数的反码是它本身;负数的反码是在原码的基础上,符号位不变,其余位按位取反。反码不能直接参与运算,因为运算结果会出现+-0的问题。

    举例:1 + (-1) = 0 --> 0000 0001 + 1111 1110 = 1111 1111 (-0)

    补码
    正数的补码是它本身;负数的补码等于反码+1。计算机存储的是数据的补码。

    举例:1 + (-1) = 0 --> 0000 0001 + 1111 1111 = 0000 0000

    移码
    不论正负,都将补码的符号位取反。通常用于表示浮点数的阶码。

PS:还有一部分知识点因学习安排,后期补

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值