uint16,uint32是什么?

2024-08-24 07:38
文章标签 uint32 uint16

本文主要是介绍uint16,uint32是什么?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

记得之前在刷笔试题的时候就看见过这个问题,发现当时上网百度后又忘了。

最近在看CryEngine3引擎代码的时候又晕了,趁现在赶紧记下来~

 

在查看CE3的代码时我发现了这个变量,TFlowNodeId m_flowNodeId;

心想这是什么鬼?(请理解一个菜鸟没啥经验)

然后果断在VS下按F12查看定义,连着按了几次我终于捋清其中的奥妙。

所以我干脆把uint8,uint32的都找出来了~

typedef  unsigned  char  uchar;typedef  uchar  uint8;typedef   uint8  TFlowPortId;typedef  unsigned  short  ushort;typePOINTdef  ushort  uint16;typedef  uint16  TFlowNodeId;typedef  unsigned  int   uint;typedef  uint  uint32;

 

 

下面我就要针对其意义简单的做一下分析了~

一般来说我们都知道typedef

用来给变量或结构体起别名,之后声明变量的时候看起来比较清晰易懂

例如 typedef char* PCHAR或者   typedef struct tagPOINT{int x;int y;}POINT;PCHAR c;POINT P1;

在这里我们用typedef来定义与平台无关的类型

 int的size取决于平台,16位平台的sizeof(int)=2, 32位平台的sizeof(int)=4, 64位平台的sizeof(int)=8。

(当然这个是不一定得,可能和平台以及编译器有关,多数情况是上面说的那样)

 

*比如我们想定义一个int16,想让他无论什么平台上都是占16位,即两个字节。

  那我们就只需要修改    typedef short int16;

  因为在16位和32位机器上(对于一般的编译器来说)short都是占16位,

  这样我们就可以声明  int16  a;就达到我们的效果了~

 

 

顺便贴一下:

 

32位系统,vc编译器中,

short占 2 字节,

int 、float、long 都占 4 字节,

double 占8 字节

具体占用几个字节,用sizeof();可以测出来的

 

上面代码还涉及到unsigned,无符号数,这个在之后的博客里再详细讨论一下吧~

上面有任何不对的地方还请指出,随时更正~

 

这篇关于uint16,uint32是什么?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101864

相关文章

uint8_t / uint16_t / uint32_t /uint64_t数据类型

这些数据类型是 C99 中定义的,具体定义在:/usr/include/stdint.h    ISO C99: 7.18 Integer types <stdint /* There is some amount of overlap with <sys/types.h> as known by inet code */ #ifndef __int8_t_defined # defin

【嵌入式】uint32值写入到二进制文件中的存储详情

背景 项目预留100字节用于存储参数文件。现在有些数值一个字节表示不够,需要用4个字节。比如数值1144201745,对应的十六进制0x44332211,那么在二进制中存储是怎么样的呢?做个总结 分析 写了一个sample,把uint32_t u32Value1{0x01U}和uint32_t u32Value2{0x44332211U}写到data.bin文件中,然后用十六进制的软件打开查

C语言 int uint16_t 踩坑记录

使用 uint16_t 存储 int的负数,有可能读出来是65535 ? 是的,如果你尝试使用 uint16_t 类型来存储一个负数 int 值,你可能会得到 65535。这是因为 uint16_t 是一个无符号的16位整数类型,它的取值范围是从 0 到 65535(即 0 到 2^16 - 1)。当将一个负数强制转换为 uint16_t 时,实际上会发生一种称为“类型提升”的过程,这个过程会将

vscode 未定义标识符 “uint16_t“C/C++(20) 但是可以顺利编译

这是没有指定编译器的原因 解决方法: 打开 或c_cpp_properties.json,添加编译器

antd vue switch组件怎么把值true、false改为uint32类型的1和0

背景 已知switch组件的checked属性默认是传入true 和 false的,但是有这样的业务情景,既需要使用的是开关,又需要传入的是整数,那么我们应该如何修改呢? 解决方案 <a-form-item label="允许失败时保存"><a-switch :checked="switchValue === 1" @change="handleSwitchChange"></a-swi

boost中boost::uint32_t和一般的uint32_t的区别

using boost::int8_t; using boost::uint8_t; using boost::int16_t; using boost::uint16_t; using boost::int32_t; using boost::uint32_t; using boost::int64_t; using boost::uint64_t; C++

golang中int int8 int16 int32 int64 uint8 uint16 uint32 uint64 占用字节和取值范围

================================ go grpc-go 相关技术专栏 总入口   go语言基础知识总结、整理、收藏 ================================   本次测试的环境是Mac系统下,CPU 64位。 注意: go语言中的int的大小是和操作系统位数相关的; 如果是32位操作系统,int类型的大小就是4字节;如果是64位操作系统

matlab unit16 转换为图像,Matlab下imwrite,Uint16的深度图像

Matlab下imwrite,Uint16的深度图像 1. 在Matlab命令窗口输入命令: help imwrite 会有如下解释: If the input array is of class uint16 and the format supports 16-bit data (JPEG, PNG, and TIFF), imwrite outputs the data as 16-bit

python将二进制转换为32位浮点数float/两个16位整数(高位字/低位字)Uint16转换为32位浮点数float

背景:工业数采,采集Siemens西门子S7-1200数据,其中一个32位浮点数无法直接读取,分为了两个16位字去读 DB27.DBD116--->DB27.DBW116 DBD27.DBW118 目标:通过python边缘计算,将两个字Uint16合为32位浮点数float Los geht's! 目录 了解S7-1200寻址 了解S7-1200浮点数使用标准 编写python

正则表达式匹配 int unint uint16 类型最大值最小值的类型范围

以int16来举例 答案 ^([1-6]\d(?<!6[6-9])\d(?<!65[6-9])\d(?<!655[4-9])\d(?<!6553[6-9])|0|10{4}|[1-9]\d{0,3})$ 解析 int16的范围是 0~65535 。我们把它分解为 0 1~9999 10000 ~ 65535 。前两组很简单如下 0 [1-9]\d{0,3} 正则表达式 否定式向