uint32是什么数据类型_《快学c++》第5课——uint8_t,uint16_t,uint32_t,uint64_t

先从c++的基础数据类型说起

C++的基础数据类型列表:

98970cae5e44ffdf0a8c626273b763cf.png

总的来说c++的基础数据类型分为三类:

  • 布尔型
  • 整型(char型从本质上说,也是种整型类型,它是长度为1个字节的整数,通常用来存放字符的ASCII码)
  • 浮点型

uint8_t/uint16_t/uint32t/uint64_t是什么

首先,要明确一点:*_t是typedef定义的表示标志,是一种表示规范。

因此,我们所看到的 uint8_t、uint16_t、uint32t、uint64_t都不是新的数据类型,而是通过typedef给类型起得别名。

这些数据类型是 C99 中定义的,具体定义在:/usr/include/stdint.h文件中。

/* There is some amount of overlap with <sys/types.h> as known by inet code */
#ifndef __int8_t_defined
# define __int8_t_defined
typedef signed char             int8_t;
typedef short int               int16_t;
typedef int                     int32_t;
# if __WORDSIZE == 64
typedef long int                int64_t;
# else
__extension__
typedef long long int           int64_t;
# endif
#endif

/* Unsigned.  */
typedef unsigned char           uint8_t;
typedef unsigned short int      uint16_t;
#ifndef __uint32_t_defined
typedef unsigned int            uint32_t;
# define __uint32_t_defined
#endif
#if __WORDSIZE == 64
typedef unsigned long int       uint64_t;
#else
__extension__
typedef unsigned long long int  uint64_t;
#endif

需要注意的是:uint8_t 实际是一个 char。(typedef unsigned char uint8_t;)

  • 输出 uint8_t 类型的变量实际输出的是其对应的字符, 而不是真实数字。
#include <iostream>
#include <cstdint>

using namespace std;

int main() {
  uint8_t a = 65;
  cout << a << endl;
}

输出:A

  • uint8_t类型变量转化为字符串时得到的会是ASCII码对应的字符, 字符串转化为 uint8_t 变量时, 会将字符串的第一个字符赋值给变量。
#include <iostream>
#include <cstdint>
#include <sstream>

using namespace std;

int main() {
    uint8_t a = 65;

    // uint8_t -> string
    string str;
    ostringstream oss;
    oss << a;
    str = oss.str();
    cout << str << endl;

    // string -> uint8_t
    str = "65";
    stringstream ss;
    ss >> a;
    ss.clear();
    cout << a << endl;

    uint32_t b = 66;

    // uint32_t -> string
    string str2;
    ostringstream oss2;
    oss2 << b;
    str = oss2.str();
    cout << str2 << endl;

    // string -> uint32_t
    str = "66";
    stringstream ss2;
    ss2 << str;
    ss2 >> b;
    ss2.clear();
    cout << b << endl;
}

输出:A

6

66

66

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行程实践、外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值