两大基本数据类型 - 整数类型 / 浮点数类型

一、整数与浮点数之间的区别

  两者的存储方式不一样,整数是直接以二进制形式进行存储,对于浮点数,需要将小数部分和指数部分分开存储。两者之间的区别还有如下:

  1-整数没有小数部分,浮点数有小数部分;

  2-浮点数可以表示的范围比整数大;

  3-对于一些算术运算(两个很大的数相减),浮点数损失的精度更多;

  4-在任何区间内都存在着无数个实数,所以计算机的浮点数不能表示区间内的所有值,通常只是实际值的近似值;

  5-过去,浮点运算比整数运算慢,不过,有了浮点处理器,速度上的差距有了一定的缩小。

二、整数

  int类型是有符号整型,可以是正整数、负整数或零。其取值范围依计算机系统而异。一般而言,存储一个int数据需要占用一个机器字长,正负号会占用其中一位。处理器的机器字长越长,int的范围越大。ISO C 规定。int的取值范围最小为-32768~32767。

  八进制、十进制、十六进制int型数据的显示:%o - 八进制,%d - 十进制,%x - 十六进制。如果是需要显示各进制数的前缀0、0x和0X,必须分别使用%#o、%#x、%#oX。

  占用存储空间:short <= int < long < long long。【个人PC上常见的设置:long long - 64bit,long - 32bit, int - 16bit/32bit, short - 16bit。】【C 标准对基本数据类型之规定的允许的最小大小】

  short、long、long long 和 unsigned 类型数据的打印:%u - unsigned int;%ld - long int;%lo、%lx形式将long型数据以八进制、十六进制打印;对于short类型,使用 h 前缀,%hd,%ho等都是有效的;l 和 h 前缀都可以和 u 一块使用。【在使用printf()函数进行打印的时候,确保转换说明的类型与待打印值的类型相匹配,否则,会有意想不到的错误】

  对于short型数据,不管是以%hd形式进行打印还是以%d形式进行打印,结果都是一样的。【原因:在给函数传递参数时,C 编译器会把 short 类型的数据自动转换成 int。1 - 转换的原因为 int 类型被认为是计算机处理整数类型时最高效的类型,在short 和 int 类型的大小不同的计算机中,用 int 类型的参数传递熟读更快;2 - 使用 h 修饰符可以显示较大整数被截断成 short 类型值的情况。】

三、浮点数

  1、float、double、long double

  C 标准规定,float 类型必须至少能表示6位有效数字,且取值范围至少是10^(-37) ~ 10^(+37)。通常,系统存储一个 float 类型的数据需要占用32位,其中8位用于表示指数的值和符号,剩下24位用于表示非指数部分(也叫做尾数或有效数)及其符号。

  double 类型和 float 类型的最小值范围相同,但至少能必须表示10位有效数字。一般情况下,double 类型的数据占用64位而不是32位,一些系统将多出的32位全部用来表示非指数部分,这种做法不仅增加了有效数字的位数(提高精度),还减少了舍入误差,还有一些系统会把其中的一些位分配给指数部分,以容纳更大的指数,增加可表示数的范围。无论如何,实际情况中 double 类型的数据至少有13位有效数字,超过最低标准。

  2、浮点型常量

  浮点型常量的基本形式:有符号的数据(包括小数点)+ e / E  + 有符号数表示10的指数。【e.g.:-1.56E+12,2.87e-3等】

  简写形式:‘ + ’可以省略;可以没有小数点【e.g. 2E5】或指数部分【e.g. 19.28】,但是二者不能同时省略;可以省略小数部分【e.g. 3.E16】或整数部分【e.g. .45E-6】,但是二者不能同时省略.除了上述的简写形式,以下几种简写形式也是有效的【3.14159、.2、4e16、.8E-5、100.0等】。【不要在浮点型常量中间加空格!!!】

  3、浮点数的使用

  float some = 1.0 * 2.0;

  默认情况下,编译器假定浮点型常量是double类型的精度。对于上述表达式的处理,4.0和2.0会被存储为64位的double类型,使用双精度进行乘法运算,然后将乘积截断成float类型的宽度。虽然说这种计算方式得出来结果精度更高,但是会减慢程序的运行速度。

  在浮点数后边加上 f / F 后缀可覆盖默认设置,编译器会将浮点数常量看作是 float 类型;使用 l / L 后缀使得数字成为long double 类型;没有后缀的浮点型常量是 double 类型。

  4、浮点数的打印

  %f - 打印十进制计数法的 float 和 double 类型浮点数【 %Lf 等亦可】;

  %e - 打印指数计数法的浮点数【 %Le 等亦可】;

  %a - 打印十六进制的浮点数(前提是系统支持)【 %La 等亦可】。

  5、浮点值的上溢和下溢

  上溢(overflow):数字过大,超过当前类型能表达的范围。

  下溢(underflow):当前类型数据的全精度被损失。

  

  

原文地址:https://www.cnblogs.com/wyt123/p/10918576.html

时间: 2024-10-10 01:54:24

两大基本数据类型 - 整数类型 / 浮点数类型的相关文章

Python 入门(三)整数和浮点数+布尔类型

整数和浮点数 Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致. 基本的运算: 1 + 2 + 3 # ==> 6 4 * 5 - 6 # ==> 14 7.5 / 8 + 2.1 # ==> 3.0375 使用括号可以提升优先级,这和数学运算完全一致,注意只能使用小括号,但是括号可以嵌套很多层: (1 + 2) * 3 # ==> 9 (2.2 + 3.3) / (1.5 * (9 - 0.3)) # ==> 0.421455938

C语言的数据类型——整数类型和浮点类型

??基本数据类型分为整数类型和浮点类型两大类.其中,整数类型又可以被细分成有符号整型与无符号整型. 1.整数类型 有符号整型 short int int long int long long int char(使用整数存储字符) 无符号整型 unsigned short int unsigned int unsigned long int unsigned long long int unsigned char(使用整数存储字符) ??其中,后面的类型不能小于前面的类型,即short int占用

整数,浮点数和布尔类型

整数和浮点数有那个四则运算: 两种类型的数可以直接进行加减,当整数和浮点数进行加减的时候,结果会自动的变为浮点数,其中除法运算是“/”来表示的, 而余数的算术符号是“%”来表示的. 在布尔值的判断中我们不需要进行这种符号的判断,直接使用那三种运算:与运算,非运算和或运算. 在Python中它把None,0和' '看成false,其他的数值和非字符串都看成true

Python--数值类型及操作 整数、浮点数、复数

整数类型 -可正可负,没有取值范围限制 -十进制:153 -二进制,以0b或0B开头:0b010,0B101 -八进制,以0o或0O开头:0o123,0O456 -十六进制,以0x或0X开头:0x9a,0X89 浮点数类型 -带有小数点及小数的数字 -浮点数取值范围和小数精度都存在限制,但常规计算可忽略 -取值范围数量级约-10E307至10E308,精度数量级10E-16 -round(x,d):对x四舍五入,d是小数截取位数 -浮点数间运算与比较用round()函数辅助 复数类型 -a+bj

JDBC数据类型、Java数据类型、标准sql类型

本文转自:http://www.cnblogs.com/shishm/archive/2012/01/30/2332142.html 谢谢原作者细心的总结,很赞! 本概述是从<JDBCTM Database Access from JavaTM: A Tutorial and Annotated Reference>这本书中摘引来的.JavaSoft 目前正在准备这本书.这本书是一本教程,同时也是 JDBC 的重要参考手册,它将作为 Java 系列的组成部份,在 1997 年春季由 Addis

2、数据类型和运算符——基本类型的类型转换

Java语言所提供的7种数据类型(不包括boolean)之间可以相互转换,有两种类型转换方式:自动类型转换和强制类型转换. 一.自动类型转换 Java所有数值类型可以相互转换,如果系统支持把某种基本类型的值直接赋给另一种基本类型的变量,则这种方式称为自动类型转换.当把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,系统可以进行自动类型转换:否则就需要强制转换. 表数范围小的可以向表数范围大的进行自动类型转换,就如同有两瓶水,当把小瓶的水倒入大瓶种,不会有任何问题:否则就需要强制转换.

MySQL:MySQL日期数据类型、MySQL时间类型使用总结

MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型        存储空间      日期格式                日期范围------------  ---------  --------------------- -----------------------------------------datetime      8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 ~ 9999-12-31 23:59:5

数据类型中的基本类型

一.基本类型的种类 四类八种:基本类型分为四大类和八种形式. 1.整型:在计算机内按有符号的二进制补码格式存放. 1.1.byte:位长为8,取值范围为-27~27-1: 1.2.short:位长为16,取值范围为-215~215-1: 1.3.int:位长为32,取值范围为:-231~231-1: 1.4.long:位长为64,取值范围为:-263~263-1: 2.浮点型:在机器内以IEEE754格式存放. 2.1.float:位长为32,取值范围为1.4*10-45~3.4*1038: 2

MySQL:MySQL日期数据类型、MySQL时间类型详解

一.MySQL 日期类型:日期格式.所占存储空间.日期范围 比较 日期类型        存储空间       日期格式                                       日期范围 ------------          ---------   ---------------------                      ----------------------------------------- datetime          8 bytes