一、C++基础数据类型

(一)如下图

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

(二)byte(字节)和bit(位)

普及如下:

byte为字节,bit为位,1byte=8bit
这两者应用的场合不同。通常用bit来作数据传输的单位,因为物理层,数据链路层的传输对于用户是透明的,而这种通信传输是基于二进制的传输。在应用层通常是用byte来作单位,表示文件的大小,在用户看来就是可见的数据大小。比如一个字符就是1byte,如果是汉字,则是2byte。
Bit意为“位”或“比特”,是计算机运算的基础,属于二进制的范筹;
Byte意为“字节”,是计算机文件大小的基本计算单位;

(三)ASCII,Unicode和UTF_8之间的前生后世

https://blog.csdn.net/Aidam_Bo/article/details/85780365


 二、uintx_t

 而 *_t是typedef定义的表示标志,是结构的一种标注。即我们所看到的 uint8_t、uint16_t、uint32_t都不是新的数据类型,而是通过typedef给类型起得别名。(如C语言中没有bool类型,有的程序员用int表示,有的用short表示,则利用统一的定义来表示bool,是比较好的。typedef char bool)。 
  来看官方给我们的 typedef:

/* stdint.h standard header */
#pragma once
#ifndef _STDINT
#define _STDINT
#ifndef RC_INVOKED
#include <crtdefs.h>typedef signed char        int8_t;
typedef short              int16_t;
typedef int                int32_t;
typedef long long          int64_t;/*Unsigned*/
typedef unsigned char      uint8_t;
typedef unsigned short     uint16_t;
typedef unsigned int       uint32_t;
typedef unsigned long long uint64_t;

则很明显的看出:uint8_t是用1个字节表示的;uint16_t是用2个字节表示的;uint32_t是用4个字节表示的。

则对应的输出为:

uint16_t  %hu
uint32_t  %u
uint64_t  %llu

注意:

必须小心 uint8_t 类型变量的输出,例如如下代码,会输出什么呢?

uint8_t fieldID = 67;
cerr<< "field=" << fieldID <<endl;

结果发现是:field=C 而 不是我们所想的 field=67

这是由于 typedef unsigned char uint8_t; 

uint8_t 实际是一个 char, cerr << 会输出 ASCII 码是 67 的字符,而不是 67 这个数字.

因此,输出 uint8_t 类型的变量实际输出的是其对应的字符, 而不是真实数字.

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

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

结果是:field=67

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

例如如下代码:

#include <iostream>
#include <stdint.h>
#include <sstream>
using namespace std;int main()
{uint8_t fieldID = 67;// uint8_t --> stringstring s;ostringstream strOStream;strOStream << fieldID;s = strOStream.str();cerr << s << endl;// string --> uint8_ts = "65"; stringstream strStream;strStream << s;strStream >> fieldID;strStream.clear();cerr << fieldID << endl;
}

上述代码输出的是:

C

6

Qt总结之十四:uint8_t / uint16_t / uint32_t /uint64_t数据类型详解相关推荐

  1. uint8_t / uint16_t / uint32_t /uint64_t 数据类型大总结

    uint8_t / uint16_t / uint32_t /uint64_t  是什么数据类型 在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看,好像是个新的数据类型 ...

  2. uint8_t / uint16_t / uint32_t /uint64_t 数据类型集中网上的解释

    uint8_t / uint16_t / uint32_t /uint64_t  是什么数据类型,在嵌入式编程中经常会遇见. 首先 #define uint unsigned int; int和uin ...

  3. C 语言编程 — uint8_t / uint16_t / uint32_t /uint64_t

    目录 文章目录 目录 uint8_t\uint_16_t\uint32_t\uint64_t 格式化输出 uint8_t\uint_16_t\uint32_t\uint64_t 在 C99 标准(IS ...

  4. uint8_t / uint16_t / uint32_t /uint64_t  有什么区别?

    uint8_t / uint16_t / uint32_t /uint64_t  是什么数据类型 在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看,好像是个新的数据类型 ...

  5. [u]intN_t - uint8_t, uint16_t, uint32_t, uint64_t

    uint8_t, uint16_t, uint32_t, uint64_t 在c/c++中,很多以_t结尾的数据类型,如uint8_t,size_t等等,乍一看什么鬼,实际上_t的意思就是typede ...

  6. uint8_t / uint16_t / uint32_t /uint64_t 的简单介绍

    uint8_t / uint16_t / uint32_t /uint64_t 的简单介绍 在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看,好像是个新的数据类型,不过 ...

  7. uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结,看完全明白了

    uint8_t / uint16_t / uint32_t /uint64_t  是什么数据类型 在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看,好像是个新的数据类型 ...

  8. uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结

    uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型? 在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看,好像是个新的数据类型 ...

  9. 安卓判断服务器返回的状态码,关于服务器返回的十四种常见HTTP状态码详解

    原标题:关于服务器返回的十四种常见HTTP状态码详解 HTTP状态码 状态码是由3位数字和原因短语组成的(比如最常见的:200 OK),其中第一位数字表示响应类别,响应类别从1到5分为五种 add:其 ...

最新文章

  1. mysql oracle sqlit_【Go语言】连接数据库SQLite、MySQL、Oracle
  2. 单例模式在JDK 应用的源码分析||单例模式注意事项和细节说明
  3. Python中修改字符串的四种方法
  4. 无差异曲线matlab算法,引入Matlab提高经济类线性代数应用能力
  5. 使用jedis访问redis
  6. mockjax MOCK.js的拦截ajax请求
  7. [模拟] leetcode 14 最长公共前缀
  8. MobileNetV2: Inverted Residuals and Linear Bottlenecks
  9. Linux常用命令 创建文本 清屏操作
  10. Vue生命周期-手动挂载理解
  11. 锂离子电池性能测试软件,锂离子电池的常规性能测试方式介绍
  12. PDF如何排版骑马钉打印
  13. 简单的外网映射工具natapp操作
  14. 2020年7月PAT甲级真题 The Judger
  15. 快来喝杯Java(初级第一章)
  16. php相同数据合并单元格,jQuery_基于jQuery的合并表格中相同文本的相邻单元格的代码,ONE 已经生成的数据表格大致 - phpStudy...
  17. optimizer(三) Adam 系列
  18. pcsx2 linux双显卡,PCSX2模拟器下载-PCSX2(PS2模拟器)官方下载-PC下载网
  19. APP测试的入门书籍有哪些?
  20. mysql添加user表中的用户

热门文章

  1. HTML中的table和div
  2. C#笔记03 运算符和分支结构
  3. 苹果手机连接电脑一直噔噔蹬的响,而且没有反应
  4. (三.0)通过FPGA实现以太网通信原理及理解
  5. 安装ugjava安装在哪里_南开区业销售避雷墩/哪里有安装的
  6. bzoj1057,poj3250
  7. Android开发网络连接超时
  8. c语言累积乘,C语言编程累积2
  9. idea中如何添加自定义的todo
  10. ACR2010_常规医疗环境下TNF拮抗剂对RA骨侵蚀的修复作用