✌大家好,这里是小磊说书,我是小磊,欢迎大家来听我说书!言归正传...
➡ 续,书接上文..
⭐ 进制
进位计数的制度(规定,规则,规律),是一种计数方法;比如:计算机中的二进制,十进制,八进制,十六进制等等,也可以自己定义进制:三进制,五进制,…
⭐ 类型转换
C语言的类型比较多,因此不同情况需求的数据类型也不同,这样就需要进行类型转换,常见的类型转换可以分为自动(隐式)类型转换和强制类型转换;前者一般来说编译器会悄悄的给处理了,相对安全,但不一定是需求需要的结果,后者需要开发人员去人工处理,可以得到需求需要的结果,但安全系数及精度会下降。
🍴接下来,对这两期的内容进行详细讲解 ... ...
⭐ 整数类型
类型 | 说明 |
---|---|
signed short |
有符号短整数类型 |
unsigned short |
无符号短整数类型 |
signed int |
有符号整数类型 |
unsigned int |
无符号整数类型 |
signed long |
有符号长整数类型 |
unsigned long |
无符号长整数类型 |
⭐ 类型大小
- sizeof
原型:
sizeof unary-expression
sizeof ( type-name )
sizeof ( unary-expression ) /*补充*/
说明:
1. type-name是类型名称
2. unary-expression是元表达式,元是参数个数的单位
3. sizeof是运算符,不是函数(虽然它有一对小括号)
4. 单位:字节
源码:
printf("size of signed short: %d\n", sizeof(signed short));
printf("size of unsigned short: %d\n", sizeof(unsigned short));
printf("size of signed int: %d\n", sizeof(signed int));
printf("size of unsigned int: %d\n", sizeof(unsigned int));
printf("size of signed long: %d\n", sizeof(signed long));
printf("size of unsigned long: %d\n", sizeof(signed long));
- 各个类型取值范围对应表
类型 | 取值范围 |
---|---|
signed short |
[-2^15, 2^15-1] |
unsigned short |
[0, 2^16-1] |
signed int |
[-2^31, 2^31-1] |
unsigned int |
[0, 2^32-1] |
signed long |
[-2^31, 2^31-1]*
|
unsigned long |
[0, 2^32-1]*
|
- 各个类型的极限值(宏)及溢出问题
类型 | 极限值(宏) |
---|---|
signed short |
[SHRT_MIN , SHRT_MAX ] |
unsigned short |
[0, USHRT_MAX ] |
signed int |
[INT_MIN , INT_MAX ] |
unsigned int |
[0, UINT_MAX ] |
signed long |
[LONG_MIN , LONG_MAX ]*
|
unsigned long |
[0, ULONG_MAX ]*
|
说明:
1. 宏定义,VS中声明文件:
X:\...\Microsoft Visual Studio 9.0\VC\crt\src\limits.h
#define SHRT_MIN (-32768) /* minimum (signed) short value */
#define SHRT_MAX 32767 /* maximum (signed) short value */
#define USHRT_MAX 0xffff /* maximum unsigned short value */
#define INT_MIN (-2147483647 - 1) /* minimum (signed) int value */
#define INT_MAX 2147483647 /* maximum (signed) int value */
#define UINT_MAX 0xffffffff /* maximum unsigned int value */
#define LONG_MIN (-2147483647L - 1) /* minimum (signed) long value */
#define LONG_MAX 2147483647L /* maximum (signed) long value */
#define ULONG_MAX 0xffffffffUL /* maximum unsigned long value */
2. 溢出问题
根据编译器不同,有些编译器会按照补码体现;有些编译器会按照取余进行体现;有些编译器会截取;有些编译器不允许溢出,溢出则死程序;有些编译器会进行类型自动隐式转换;有些时候编译器会自动按照自己的规则进行优化;情况很多,相对比较复杂,因此要具体情况具体分析,当然,在优化专题中我们会专门去解析这一类问题(最好解决溢出问题的办法:编码人员尽量不要溢出)。
✨ 更多精彩,期待中...
👉 详情请参考视频解说! 📄n525
✉ liuxiaoleivc@163.com
ℹ Wechat: liuxiaoleione(添加时请注明'简友')
版权声明®
版权所有,翻版必究!
小磊说书系列课程文本及表格均为原创作品,可以转载或学习,但要注明作者和出处,然文章中图片均链接自百度网页,未经作者许可禁止一切商用活动!
网友评论