int8与int16_将int型转为char型
工作中经常碰到int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t等数据类型,所以有必要对此进行梳理。
int_t同类
int_t 为一个结构的标注,可以理解为type/typedef的缩写,表示它是通过typedef定义的,而不是一种新的数据类型。因为跨平台,不同的平台会有不同的字长,所以利用预编译和typedef可以最有效的维护代码。
- int8_t : typedef signed char;
- uint8_t : typedef unsigned char;
- int16_t : typedef signed short ;
- uint16_t : typedef unsigned short ;
- int32_t : typedef signed int;
- uint32_t : typedef unsigned int;
- int64_t : typedef signed long long;
- uint64_t : typedef unsigned long long;
Specifier | Common Equivalent | Signing | Bits | Bytes | Minimum Value | Maximum Value |
---|---|---|---|---|---|---|
int8_t | signed char | Signed | 8 | 1 | -128 | 127 |
uint8_t | unsigned char | Unsigned | 8 | 1 | 0 | 255 |
int16_t | short | Signed | 16 | 2 | -32,768 | 32,767 |
uint16_t | unsigned short | Unsigned | 16 | 2 | 0 | 65,535 |
int32_t | int | Signed | 32 | 4 | -2,147,483,648 | 2,147,483,647 |
uint32_t | unsigned int | Unsigned | 32 | 4 | 0 | 4,294,967,295 |
int64_t | long long | Signed | 64 | 8 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
uint64_t | unsigned long long | Unsigned | 64 | 8 | 0 | 18,446,744,073,709,551,615 |
size_t与ssize_t
size_t主要用于计数,如sizeof函数返回值类型即为size_t。在不同位的机器中所占的位数也不同,size_t是无符号数,ssize_t是有符号数。
- 在32位机器中定义为:typedef unsigned int size_t; (4个字节)
- 在64位机器中定义为:typedef unsigned long size_t;(8个字节)
由于size_t是无符号数,因此,当变量有可能为负数时,必须使用ssize_t。因为当有符号整型和无符号整型进行运算时,有符号整型会先自动转化成无符号。
int main()
{
unsigned short a;
short int b = -1;
a = b;
cout << "b=" << b << endl; //b=-1
cout << "a=" << a << endl; //a=65535
}
此外,int 无论在32位还是64位机器中,都是4个字节, 且带符号,可见size_t与int 的区别之处。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170530.html原文链接:https://javaforall.cn
相关文章
- int型转换为long型遇到的一个小问题
- java integer long 转换_long(Long)与int(Integer)之间的转换
- BigDecimal转为int类型「建议收藏」
- int对应的jdbctype_java clob类型
- uint16与int16的区别_golang int转string
- 一个函数解决SQLServer中bigint 转 int带符号时报错问题
- sql中,把varchar类型转换为int型,然后进行排序详解数据库
- PHP插入空字符串 到int字段报错的方法详解编程语言
- F4IF_INT_TABLE_VALUE_REQUEST选择屏幕自定义F4帮助详解编程语言
- MySQL INT数据类型溢出问题分析(mysqlint溢出)
- MySQL中利用无符号INT的优势(mysql无符号int)
- MySQL中使用无符号INT类型的优势(mysql无符号int)
- 转换MySQL中将INT类型时间转换为DateTime(mysql时间int)
- MySQL数据类型技巧:从String转换到Int(mysql转换成int)
- Python中int()函数的用法
- MSSQL转换整数的简单方法(mssql 转int)
- 【建立流畅的 Linux 之旅——探索内在的 Int 能量】(int linux)
- MySQL中的INT数据类型默认值(mysql中int默认值)
- MYSQL中的INT字段数据类型简介与使用技巧(mysql中int怎么写)
- MySQL中int类型大小解析(mysql中int大小)
- MySQL中INT类型的位数是多少(mysql中int多少位)
- 探索Oracle数据库中无限的Int范围(int范围 oracle)
- Int类型与Oracle数据库中的对应关系(int对应oracle)
- Oracle中Int型变量的应用与注意事项(oracle中的int型)
- 深入探索Oracle的INT数据类型范围(oracle int范围)
- 值Oracle INT最大值的极限2147483647(oracle int最大)
- Oracle INT类型数据减一操作(oracle int减1)
- PHP中将字符串转化为整数(int)intval()printf()性能测试
- 深入解析unsignedint和int