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,无符号数,这个在之后的博客里再详细讨论一下吧~

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

 

### 回答1: uint8、uint16和uint32是三种不同的数据类型,分别表示8位、16位和32位的无符号整数。在计算机中,无符号整数是一种只包含正整数的数据类型,不包含负数和小数。这三种数据类型在计算机编程中经常被使用,可以用于存储和处理各种数字数据。其中,uint8可以表示~255之间的整数,uint16可以表示~65535之间的整数,uint32可以表示~4294967295之间的整数。 ### 回答2: uint8、uint16和uint32是计算机中的无符号整数类型,分别表示8位、16位和32位的整数。其中,uint表示无符号整数类型,即只能表示非负数,而不包括负数。这些类型在编程中广泛应用于存储和操作二进制数据,如图像和音频文件。 在计算机内存中,uint8类型1个字节(8位)、uint162个字节16位)和uint324个字节32位)。由于一个字节可以存储8位,因此uint8类型最大值为2^8-1(即255),uint16类型最大值为2^16-1(即65535),uint32类型最大值为2^32-1(即4294967295)。 在编程中,使用这些类型可以有效地节省内存空间和提高代码执行速度,因为它们可以在不同的处理器上快速进行数值运算。此外,它们也可以用于表示颜色、数据包大小、音频采样等。 需要注意的是,对于这些类型的数值运算和表示,应该根据具体情况选择适当的类型。如果数值范围较小,可以选择uint8或uint16进行处理,如果数值范围较大则应该选择uint32。同时需要注意类型的转换和溢出问题,以免出现意外错误。 总之,uint8、uint16和uint32是计算机编程中常用的无符号整数类型,可以有效地节省内存空间和提高代码执行速度,在编程中需要注意选择适当的类型和处理数值范围的问题。 ### 回答3: uint8、uint16和uint32是三种常见的数据类型,它们的名称中的“uint”表示“无符号整数”,即只能表示正整数,不能表示负数。 uint8是8位(1字节)无符号整数类型,可以表示0-255。在编程中,uint8经常用来表示像素的颜色值,一些二进制数据或者大小受限的计数器。 uint1616位(2字节)无符号整数类型,可以表示0-65535。在编程中,uint16经常用来处理大一些的二进制数据、网络通讯协议中的端口号和其他需要使用16位数值的场合。 uint3232位(4字节)无符号整数类型,可以表示0-4294967295。在编程中,uint32通常用来表示较大的计数器、文件大小、内存地址等。此外,大多数计算机的寄存器和内存单元的大小也是32位。 需要注意的是,在进行位运算时,使用不同位数的整数类型会影响运算结果。另外,在进行数值计算时,使用较小的整数类型可能会发生溢出或截断,导致结果出现错误。因此,在编程时需要根据具体情况选择合适的数据类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值