c++ 基础数据类型 与 uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型

c++ 基础数据类型 与 uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型C 的基础数据类型 C 的主要数据类型 主要分为三类 布尔型 整型 char 型从本质上说 也是种整型类型 它是长度为 1 的整数 通常用来存放字符的 ASCII 码 浮点型 而 t 是 typedef 定义的表示标志 是结构的一种标注 即我们所看到的 uint8 t uint16 t uint32 t 都不是新的数据类型 而是通过 typedef 给类型起得别名 uint8 t uint

C++的基础数据类型:

c++ 基础数据类型 与 uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型

C++的主要数据类型,主要分为三类:布尔型,整型(char型从本质上说,也是种整型类型,它是长度为1的整数,通常用来存放字符的ASCII码)浮点型

而 *_t是typedef定义的表示标志,是结构的一种标注。即我们所看到的 uint8_t、uint16_t、uint32_t都不是新的数据类型,而是通过typedef给类型起得别名。


uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型

这些数据类型是 C99 中定义的,具体定义在:/usr/include/stdint.h    ISO C99: 7.18 Integer types

/* There is some amount of overlap with 
   
     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,所以输出 uint8_t类型的变量实际上输出对应的字符,而不是数值,比如:

若要输出 67,则可以这样:

cerr<< "field=" << (uint16_t) fieldID <

结果是:field=67

同样: uint8_t 类型变量转化为字符串以及字符串转化为 uint8_t 类型变量都要注意, uint8_t类型变量转化为字符串时得到的会是ASCII码对应的字符, 字符串转化为 uint8_t 变量时, 会将字符串的第一个字符赋值给变量.

#include 
   
     #include 
    
      #include 
     
       using namespace std; int main() { uint8_t fieldID = 67; // uint8_t --> string string s; ostringstream strOStream; strOStream << fieldID; s = strOStream.str(); cerr << s << endl; // string --> uint8_t s = "65"; stringstream strStream; strStream << s; strStream >> fieldID; strStream.clear(); cerr << fieldID << endl; } ------------------------------------------- 上述代码输出的是: C 6 
      
     
   

上部分转自:https://blog.csdn.net/zklth/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217747.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午8:51
下一篇 2026年3月18日 上午8:51


相关推荐

  • SDIO接口的理解

    SDIO接口的理解运用 SD 卡第一步 认识 SDIO 接口做毕业设计需要用到大量的音频文件 一般的存储器满足不了存储要求 故选择 SD 卡作为存储器件 在这里记录一下自己的学习经历 学习一个新的 IC 无非是要么根据时序图写出 Read 和 Write 函数 要么是根据通信总线和 IC 相关操作指令去完成 Read 和 Write 函数 只有能与对应 IC 说话 我们才能去开发它更多地可能性 这里以原子探索者为例 为大家介绍一下 SD 卡相关知识

    2026年3月19日
    2
  • Lytro 光场相机重对焦C++实现以及CUDA实现

    Lytro 光场相机重对焦C++实现以及CUDA实现前面有几篇博客主要介绍了光场和光场相机相关知识 以及重对焦效果和多视角效果的展示 算是自己学习光场过程的一种总结 这次贴上自己用 OpenCV C 编写的重对焦算法实现 包含 CPU 版和 CUDAGPU 版 以及交互的 Demo 放在我的开源中国码云上 连接在此 https git oschina net rxdj refocus LightFieldIm git 代码的说明请参见 rea

    2026年3月18日
    2
  • 今天 腾讯免费安装OpenClaw

    今天 腾讯免费安装OpenClaw

    2026年3月15日
    4
  • Method of Four Russians 算法

    Method of Four Russians 算法算法简介 MethodofFour 算法 也被称为四毛子算法 是一种受万人敬仰的算法 好吧 这其实是一种可以做到 O n mathcal O n O n 预处理 O 1 mathcal O 1 O 1 查询的 RMQ 算法 但普通的 RMQ 算法只能做到 O nlog n mathcal O n logn O nlogn 预处理 O 1 mathcal O 1 O 1 查询 算法实现步骤如下 建立 Cartesian 笛卡尔 树 将问题转化为树

    2026年3月17日
    2
  • 深入db4o

    深入db4o这是RickGrehan发表在TheServerSide上的一篇关于面向对象数据库–db4o的文章,较全面地介绍了db4o的关键特性,希望对大家认识db4o能有所帮助。(2007.12.07最后更新)   db4o-针对对象的数据库-是一个完全的对象数据库;它以使对象在其生命周期中-无论是在数据库内或是在外-都保持着它们的本性这样一种方式操纵对象。不论类的复杂性如何,对象的内容,结构

    2022年7月21日
    18
  • js遍历字典

    js遍历字典for varkeyindata html lt optionvalue key gt data key lt option gt

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号