Java-基本数据类型的取值范围及成因

2019-08-13  本文已影响0人  从小画虎烂

记得某次面试中,面试官让我写个代码段:

        将两个长度为n的字符串相加,其中字符串为纯数字,求结果?

哦呵,面试官的意图非常明显,无非是想考察下面试者对于数据类型取值范围的掌握、数据溢出的处理。

em...是的...但是...,我忘了 =.=I|..,int的取值范围?这个取值范围是怎么来的?数据溢出会变成什么样?......,再见了,青春。


一、基本数据类型

       数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,是语言的抽象原子概念,可以说是语言中最基本的单元定义。java是强类型语言,本质上可将数据类型分为两种:基本类型和引用数据类型。

  基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。

数据类型图 基本数据类型属性表

二、取值范围的由来

以short短整型为例,short类型占2个字节,即16位。

1、16位二进制可表示的范围为:

                0000,0000,0000,0000 ~ 1111,1111,1111,1111(0 ~ 2^16-1)

2、java中整数类型的数据在保存为二进制时,都定义了符号位,最高位(第一位)表示符号:0表示正,1表示负。即16位二进制数可表示的范围为:

                 0111,1111,1111,1111 ~ 1111,1111,1111,1111(2^15-1 ~ -2^15-1)

3、

问:在不同位数的操作系统上,基本数据类型所表示的范围是否相同?

答:在C/C++上是不同的,但是在java上是相同的。(具体不深究)

三、数据溢出

上一篇下一篇

猜你喜欢

热点阅读