问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

C++数据类型解析:深入理解实型(浮点数)、有符号数和无符号数

创作时间:
作者:
@小白创作中心

C++数据类型解析:深入理解实型(浮点数)、有符号数和无符号数

引用
CSDN
1.
https://blog.csdn.net/Long_xu/article/details/130692218

一、实型(浮点数)

浮点数能够表示小数部分的数值,如 3.1415、10238.234。

计算机将这样的值分为两部分存储,一部分表示值,另一部分用于对值进行放大或缩小。如数值3.1415可以看成0.31415(基准值)和100(缩放因子)。缩放因子的作用是移动小数点的位置,术语 浮点 因此而得名。

C++内部表示浮点的方法与上述相同,只不过它是基于二进制数,缩放因子是2的幂而不是10的幂。浮点数能够表示小数值、非常大的值和非常小的值,它们的内部表示方法与整型有很大区别。

实型分为: 单精度浮点数(float,占4字节)和双精度浮点数(double,占8字节)

1.1、实型常量

  • 不以f结尾的实型常量是double类型,如3.1415。
  • 以f结尾的实型常量是float类型,如3.1415f。
  • 指数形式:123e3表示
    123

    10
    3

1.2、实型变量

C++实型变量是指具有小数点的数值类型,包括单精度浮点数(float)、双精度浮点数(double)和长双精度浮点数(long double)三种。这些变量可以存储任意大小的实数,但由于计算机内部表示的限制,其精度和范围是有限的。在C++中,实型变量使用浮点数表示法来存储,即采用科学计数法的形式表示。例如,3.14可以表示为3.14e0或者314e-2。在定义实型变量时,需要指定变量类型,并且可以给变量赋初值。例如:

float f = 3.14f;
double d = 1.23456789123456789;
long double ld = 1.23456789123456789123456789L;

其中,f是单精度浮点数,d是双精度浮点数,ld是长双精度浮点数。注意,在给长双精度浮点数赋值时要加上后缀L,以区分其他两种浮点数。

二、有符号数

C++中,有符号整数类型表示可以表示正数、负数和零的整数,而无符号整数类型则仅表示非负整数(即0和正整数)。

数据二进制的最高位为符号位,其他位为数据位。最高位为1表示负数,最高位为0表示正数。

一字节的有符号数取值范围为-128~127。
注意:将-0看成-128。

定义无符号数:
(1)方式一:默认方式(推荐)。

int num;

(2)方式二:使用关键字signed。

signed int num;

三、无符号数

没有符号位,所有二进制都是数据位。在同样的位宽下,无符号整数类型可以表示的最大值是有符号整数类型的两倍,但不能表示负数。

一字节的无符号数取值范围为0~255。

定义无符号数: 使用关键字unsigned。

unsigned int num;

总结

实型数据类型:指具有小数点的数字,包括float、double和long double三种类型。

  • float:单精度浮点数,占用4个字节。
  • double:双精度浮点数,占用8个字节。
  • long double:扩展精度浮点数,占用16个字节。

有符号数:指可以表示正数、负数和0的数字,包括charshortintlong四种类型。

  • char:字符类型,通常占用一个字节,取值范围为-128到127或0到255。
  • short:短整型,占用2个字节,取值范围为-32768到32767。
  • int:整型,占用4个字节,取值范围为-2147483648到2147483647。
  • long:长整型,占用4个字节或8个字节,取值范围为-2147483648到2147483647或-9223372036854775808到9223372036854775807。

无符号数:指只能表示非负数(0及正整数)的数字,包括unsigned char、unsigned short、unsigned int和unsigned long四种类型。

  • unsigned char:无符号字符类型,占用一个字节,取值范围为0到255。
  • unsigned short:无符号短整型,占用2个字节,取值范围为0到65535。
  • unsigned int:无符号整型,占用4个字节,取值范围为0到4294967295。
  • unsigned long:无符号长整型,占用4个字节或8个字节,取值范围为0到4294967295或0到18446744073709551615。

需要注意的是,在使用实型、有符号数和无符号数时,应该根据需要选择合适的数据类型,避免数据溢出和精度损失的问题。同时,在进行数据类型转换时,也应该注意数据范围和精度的差异,避免数据丢失或产生错误的结果。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号