详解C语言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t

这篇具有很好参考价值的文章主要介绍了详解C语言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2023年8月8日,周二上午


目录

  • 为什么会产生int8_t、uint8_t等这类数据类型
  • int8_t、uint8_t等这类数据类型有什么用
  • 头文件
  • int8_t、uint8_t等这类数据类型是怎么实现的

为什么会产生int8_t、uint8_t等这类数据类型

根本原因在于,C 语言标准只是规定了各个基本类型的最小字节长度,但并没有指定它们的确切字节长度:

  • char 类型: char 类型的最小大小为 1 字节,用来存储字符的基本类型。

  • short 类型: short 类型的最小大小为 2 字节,用来存储短整数的基本类型。

  • int 类型: int 类型的最小大小为 2 字节,用来存储整数的基本类型。

  • long 类型: long 类型的最小大小为 4 字节,用来存储长整数的基本类型。

  • long long 类型: long long 类型的最小大小为 8 字节,用来存储超长整数的基本类型。

比如,

在64位Windows上运行C语言的sizeof(long)得到的是4

在64位Linux上运行C语言的sizeof(long)得到的是8

虽然不一样,但它们都不会小于4字节

再比如,

在某些平台上运行C语言的sizeof(int)得到的是2

在64位和32位Windows上运行C语言的sizeof(int)得到的是4

虽然不一样,但它们都不会小于2字节

总而言之,C语言现有的基本数据类型,不能满足跨平台的需求。

因为C语言现有的基本数据类型在不同的平台有不同的字节长度,当换一个平台时可能会在数据大小方面出现问题。

int8_t、uint8_t等这类数据类型有什么用

详解C语言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t,我的博客,c语言,开发语言

Integer type with a width of exactly 8, 16, 32, or 64 bits.

具有精确位宽的8位、16位、32位或64位整型

也就是说,无论在什么平台,无论用什么编译器,只要是遵守C语言标准的,

int8_t和uint8_t一定是8位的整型,

int16_t和uint16_t一定是16位的整型,

int32_t和uint32_t一定是32位的整型,

int64_t和uint64_t一定是64位的整型

头文件

在C语言中,它们定义在stdint.h

在C++中,它们定义在cstdint

int8_t、uint8_t等这类数据类型是怎么实现的

我研究了几个小时也没能彻底弄懂,感觉没那么简单,还是挺复杂的,

其实也不用研究这些,知道怎么用、为什么要用就可以了,

不建议去研究这个....

详解C语言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t,我的博客,c语言,开发语言

详解C语言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t,我的博客,c语言,开发语言

 文章来源地址https://www.toymoban.com/news/detail-635318.html

详解C语言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t,我的博客,c语言,开发语言

 

到了这里,关于详解C语言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于C或C++,数组的强制类型转换,uint8_t与char的区别,uint8_t*与char*的兼容性问题以及一些指针的常见问题

    1.类型定义: uint8_t:这是一个无符号 8 位整数类型,定义在 stdint.h 或 inttypes.h 头文件中。它是标准的固定宽度整数类型之一,确保在所有平台上占用 8 位(1 字节)。 char:这是 C 语言的基本字符存储类型,用于存储单个字符。在不同的系统和编译器中,char 可以是有符号的

    2024年01月24日
    浏览(38)
  • uint16数据的读取以及转换为uint8数据显示

      Kinect相机产生的深度数据为uint16数据,16位无符号整型,图片显示一般为uint8数据,本文介绍如何正确读取Kinect深度数据以及将其转化为uint8数据进行显示。 读取uint16位数据 将uint16位数据转化为uint8数据的灰度图 1、直接使用np.uint8()进行转换。 2、把图片等比例缩放到0-2

    2024年02月14日
    浏览(40)
  • 芯片算力(TOPS, GOPS, MOPS)与精度(int8,int16)

    芯片算力是描述处理器进行运算,对数据进行操作的能力的指标。字面上理解,芯片算力越大,每秒能够进行的运算次数就越多,执行计算任务就越快。 算力 的基本单位有: TOPS:Tera Operations Per Second, 处理器每秒可以进行一万亿次操作(10*12) GOPS:处理器每秒可以进行一

    2024年02月11日
    浏览(43)
  • 模型量化!ONNX转TensorRT(FP32, FP16, INT8)

    本文为Python实现,C++实现链接模型量化 若还没有配置环境(CUDA,CUDNN,TensorRT),请移至C++实现中查看环境配置方法    支持三种不同精度的量化 模型单精度量化 (FP32) 模型半精度量化 (FP16) 模型Int8量化 (INT8) 经测试yolov5,yolov6,yolov7,yolov8转化成功 yolov5: https://github.com/u

    2024年02月16日
    浏览(41)
  • javascript(js)语法 将blob转arrayBuffer、arrayBuffer转Uint8Array、Uint8Array转String的方法

    1. blob转arrayBuffer的函数 2. arrayBuffer转Uint8Array的函数 3. Uint8Array转String的函数 测试上面三种方法

    2024年02月06日
    浏览(38)
  • Flutter Dart FFI Pointer<Uint8>类型如何转成数组或String

    继上一次发布的 Flutter 直接调用so动态库,或调用C/C++源文件内函数 内容,最终我选择了第二种方式, 直接把整个 Native C++ 的项目源代码放进了 Flutter 工程里编译 (放在iOS的目录是因为它不支持自定义源码路径,Android是可以的)。这样的好处是 Android 和 iOS 两个平台都不需要

    2024年02月04日
    浏览(47)
  • PostgreSQL不使用扩展,生成随机int8值,生成均匀分布的随机int8值

    在PostgreSQL中,可以使用 pgcrypto 扩展提供的函数 gen_random_uuid() 生成随机的UUID(Universally Unique Identifier),其中包含8字节随机整数(int8值),如下所示: 上述SQL语句使用 gen_random_uuid() 函数生成随机UUID,并将其转换为字符串类型。然后,使用 substring() 函数从字符串中提取前

    2024年02月09日
    浏览(52)
  • YOLOV5 INT8 量化对比

    对比了两种INT8量化, 熵校准的量化有更高的速度,但是吧… 最大最小值校准是一种 INT8 校准算法。在最大最小值校准中, 需要使用一组代表性的校准数据来生成量化参数, 首先将推理中的数据进行统计,计算数据的最小值和最大值,然后根据这些值来计算量化参数。具体步

    2024年02月16日
    浏览(47)
  • JS各种数据流之间的格式(ArrayBuffer、Uint8Array、Blob、 File、DataURL)相互转换及应用

    前端网页 File 上传、下载,Canvas 保存图片,Ajax 和 Fetch 二进制流传输,PDF 预览,浏览器上 WebAssembly 的应用 等等都需要到 ArrayBuffer 和 Blob 。 FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要

    2024年02月08日
    浏览(42)
  • C# int和uint类型学习

    在C#中,使用int表示整数类型,对应于.NET的System.Int32结构; C#中的int类型占4字节(4*8=32位)内存空间,其范围从-2,147,483,648 到 2,147,483,647; int类型是默认的整数类型,并且默认值是0; uint类型也是整数类型,占4字节(32位)内存空间,范围是0-4294967295之间的正整数,对应于.NET的

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包