C++学习笔记(二)变量与数据类型

本文介绍了C++中的基本数据类型,包括数据类型的位数和长度,以及如何根据需求选择合适的数据类型。建议在明确数值非负时使用无符号类型,整数运算推荐使用int,浮点数运算推荐使用double,避免无符号类型与带符号类型混合使用,以防出现负数值转换问题。
摘要由CSDN通过智能技术生成
一、基本数据类型
1、C++ 数据类型所占的长度和位数

可寻址的最小内存块成为“字节(byte)”,存储的基本单元称为“字(word)”,大多数机器的字节都是由8个比特(bit)构成,字是由32bit或者64bit构成。
1 word = 4 byte = 32 bit
1 word = 8 byte = 64 bit
在这里插入图片描述
**备注:**字符型尽管有三种,但是字符的表现形式却只有两种,有符号和无符号,char实际表现形式为上述哪一种由编译器决定,所以在定义变量时最好明确指出是有符号还是无符号。

2、如何选择数据类型
  • 当明确知晓数值不可能为负数时,选用无符号类型
  • 使用int执行整数运算。在实际应用中,short常常显得太小而long一般与int由相同的尺寸。如果你的数值超过了int的表示范围,选用long long。
  • 在算数表达式中不要使用char或者bool,只有在存放字符或者布尔值时才使用它们。因为类型char 在一些机器上是有符号的,而在另一些机器上又是无符号的,所以如果使用char 进行运算特别容易出问题。如果需要使用一个不大的整数,那么明确指定类型是signned char或者是unsigned char 。
  • 执行浮点数运算选用double,这是因为float 通常精度不够而且双精度浮点数和单精度浮点数的计算代价相差无几。事实上,对于某些机器来说,双精度运算甚至比单精度的运算速度还要快。long double 提供的精度在一般情况下是没有必要的,况且他带来的运算时消耗也是不容忽视的。
    **备注:**切勿混用无符号类型和带符号类型。否则由负数值存在的时候会出现问题,这是因为带符号数会自动地转化为无符号数。
    例:
int main()
{
	unsigned u = 10;  //表示unsigned int类型的数据
	int i = -42;
	cout << typeid(i).name() << endl;
	cout << i + i << endl;  //输出-84
	cout << u + i << endl;  //如果int是32位,输出结果为4294967264
	system("pause");
	return 0;
}

另外,当从无符号数中减去一个值时,不管这个数是不是无符号数,都必须确保结果不能是负数。无符号数是不可能小于0 的,即无符号数u=0之后再自减得到的是一个正数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThetaQing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值