C++数据类型总结

整型(没有小数部分的数字)

C++的基本整型(按宽度递增的顺序排列)分别是char、short、int、long、long long,其中char类型最常用来表示字符,而不是数字。

整型 short、int、long和long long

C++提供了一种灵活的标准,确保了最小长度:

  1. short至少16位;
  2. int 至少与short一样长;
  3. long至少32位,且至少与int一样长;
  4. long long至少64位,且至少与long一样长。

通常而言:short为16位(2个字节),long 为32位 (4个字节),int的宽度可以是16位(2个字节)、24位(3个字节)或32位(4个字节),甚至可以是64位(8个字节)

如何判断当前编程环境下的变量名内存大小可用运算符sizeof,如

#include <iostream>

using namespace std;

int main()
{
    int m_vetor;
    cout << "int is" << sizeof(m_vetor)<<"bytes."<<endl;
    return 0;
}

输出结果为:

int is 4 bytes.

使用C++中cout输出流输出数据的不同方式(十进制,八进制,十六进制):

#include <iostream>

using namespace std;

int main()
{
    int i{352};

    cout << "i 的十进制表示 "<<dec<<i<< endl;
    cout << "i 的八进制表示 "<<oct<<i<< endl;
    cout << "i 的十六进制表示 "<<hex<<i<< endl;
    return 0;
}

输出结果为:

i 的十进制表示 352
i 的八进制表示 540
i 的十六进制表示 160

char类型:字符和小整数

成员函数:cout.put()

 函数cout.put()用于显示变量ch和一个字符常量

#include <iostream>

using namespace std;

int main()
{
    cout.put('A');
    return 0;
}

 输出结果为:

A

如果将char用作数值类型,则unsigned char 和 signed char 之间的差异将非常重要。unsigned char 类型的表示范围通常为0~255,而 signed char表示范围为-128~127

const 限定符

与#define语句的说明(预处理器方法)类似,C++使用const 关键字来修改变量声明和初始化。

#include <iostream>

using namespace std;

const int Month =12;

int main()
{
    cout << Month<<endl;
    return 0;
}

程序输出为:12

常量(如Month)被初始化后,其值就被固定了,编译器将不允许再修改该常量的值,值得注意的是C++中,可以用const的值来声明数组长度

浮点数

浮点数能够表示带小数部分的数字,如果数字过大,无法表示为long类型,则可以使用浮点类型来表示。对于带小数部分的数字,计算机将对这样的值分为两部分进行存储。一部分表示值,另一部分用于对值进行放大或缩小。如,对于数字64.1245和34124.5,他们除了小数点的位置不同外,其他都是相同的。可以把第一个数表示为0.341245()基准值和100(缩放因子),而将第二个数表示为0.341245(基准值相同)和10000(缩放因子更大)。C++内部表示浮点数的方法与此相同,只不过它基于的是二进制数,因此缩放因子是2的幂,不是10的幂。所以小数表示在计算机存储中是近似的。

书写浮点数

#include <iostream>

using namespace std;

int main()
{

    cout << 12.34E5<<endl; 
    cout << 12.34E-5<<endl;
    cout << 12.34E+5<<endl;
    return 0;
}

输出结果为:

1.234e+006
0.0001234
1.234e+006

C++也有三种浮点类型:float、double、long double  其中float至少32位,double至少48位,long doule为80、96或128位。

#include <iostream>

using namespace std;

int main()
{
    float a = 2.34e+22f;
    float b = a + 1.0f;

    cout <<" a = "<<a<<endl;
    cout << " b - a = "<< b-a<<endl;
    return 0;
}

输出结果:

 a = 2.34e+022
 b - a = 0

该程序结果应为1,2.34E+22是一个小数点左边有23位的数字。加上1之后,是在第23位之后加1,但float类型能表示的数字的前6位或前7位,因此修改第23位对该值无任何影响。

例程:

#include <iostream>

using namespace std;

const int gl_dayhour = 24;
const int gl_daymin = 60;
const int gl_daysec = 60;

int main()
{
    long m_putsec;
    int m_day,m_hour,m_min,m_sec;
    cout << "Enter the number of seconds :";
    cin >> m_putsec;
    m_day = static_cast<int>(m_putsec/(gl_dayhour*gl_daymin*gl_daysec));
    m_hour = static_cast<int>((m_putsec%(gl_dayhour*gl_daymin*gl_daysec))/(gl_daymin*gl_daysec));
    m_min = static_cast<int>(((m_putsec%(gl_dayhour*gl_daymin*gl_daysec))%(gl_daymin*gl_daysec))/gl_daysec);
    m_sec = static_cast<int>(((m_putsec%(gl_dayhour*gl_daymin*gl_daysec))%(gl_daymin*gl_daysec))%gl_daysec);
    cout <<m_putsec<< "seconds = "<<m_day<<" days, "<<m_hour<<" hour, "<<m_min <<" minutes, "<<m_sec<<" seconds " ;
    return 0;
}

运行结果如下:

Enter the number of seconds :31600000
31600000seconds = 365 days, 17 hour, 46 minutes, 40 seconds

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

六竹书生__wa

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

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

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

打赏作者

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

抵扣说明:

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

余额充值