大家好,欢迎来到IT知识分享网。
文章目录
前言
按计算机的存储方式可分为两大基本类型:整数类型 和 浮点数类型
一、整数类型
1.分类
类型 | 所占字节数 |
---|---|
short int(或 short) | 2 |
int | 4 |
long int(或 long) | 4(32位)、8(64位),规定 sizeof(int) >= sizeof(long) |
long long int(或 long long) | 8 |
unsigned int(或 unsigned) | 4 |
2.取值范围
short:[-32768,32767]
int:[-,]
long:[-,](32位)
long long:[-,]
unsigned int:[0,]
3.打印
转换说明 | 打印的类型 |
---|---|
%hd | short |
%ld | long |
%lld | long long |
%ho、%hx | 八进制、十六进制打印 short |
%lo、%lx | 八进制、十六进制打印 long |
%u | unsigned int |
%lu | unsigned long |
二、字符:char类型
用于存储字符
可以看成是一个字节的整形
1.数字和字母对应的 ASCII 码值
标准 ASCII 码的范围是 0~127
- 0~9 ———— 48~57
- A~Z ———— 65~90
- a~z ———— 97~122
char ch1 = 'A';//'A'表示字符常量 char ch2 = 65;//这样写也表示字符A
2.取值范围
有符号字符型:1000 0000(-128) —— 0111 1111(127)
无符号字符型:0000 0000(0) —— 1111 1111(255)
最高位(最左边)为符号位
3.打印:%c
三、浮点数类型
1.float 和 double
- float:单精度浮点型,占据 4 字节;
- double:双精度浮点型,占据 8 字节;
- long double:长双精度浮点型,占据 8 字节或 16 字节;
浮点数的e计数法,如:1.23E7 表示 3.16×10⁷
浮点数的存储方式是分为符号部分、小数部分和指数部分的
注意:23、23.0、2.3E1,他们的值虽然都是 23,都是后两者是浮点型常量
存储: 8 位用于表示指数的值和符号,剩下的 24 位用于表示非指数部分及其符号
注意:浮点数赋给 int 型变量时,会直接截断小数部分,而不进行四舍五入
例如:
#include<stdio.h> int main() {
int num = 66.54; printf("%d\n", num);//66 //浮点数赋给 int 型变量时,会直接截断小数部分,而不进行四舍五入 return 0; }
默认情况下,编译器假定浮点型常量是 double 类型的精度,浮点数后面加上 f 或者 F 后缀可将浮点数常量看作 float 类型,如
float num1 = 2.34f;
或者float num2 = 2.456E2F;
,使用 l 或 L 后缀看作 long double 类型
2.打印浮点值
转换说明 | 打印的类型 |
---|---|
%f | float 和 double(十进制) |
%a 或者 %A | float 和 double(十六进制) |
%e | 指数计数法的浮点数 |
%lf | long double |
例如:
#include<stdio.h> int main() {
float num = 1234.56; printf("%%f ----> %f\n\n", num); printf("%%e ----> %e\n", num); printf("%%E ----> %E\n\n", num); printf("%%a ----> %a\n", num); printf("%%A ----> %A\n", num); return 0; }
(%a)对十六进制浮点数的打印,对比十进制,用 p 和 P 分别代表 e 和 E,用 2 的幂代替 10 的幂(p 计数法)
运行结果:
分别以 %.3f、%8.3f、%-8.3f、%08.3f 的方式打印
- %.3f 的 “.3” 表示打印的浮点数小数点后保留3位,且第三位四舍五入
- %8.3f 的 8 表示打印的浮点数宽8字符右对齐(小数点也算在内)
- %-8.3f 的 负号表示打印的结果左对齐
- %08.3f 的 0 表示右对齐 8 字符宽后,前面的空位补 0
例如:
#include<stdio.h> int main() {
float num = 56.03478; printf("%f\n", num); printf("%.3f\n\n", num); printf("%6.3f\n", num); printf("%8.3f\n", num);//宽8字符右对齐,小数点后保留3位,且第三位四舍五入,负号表示左对齐 printf("%-8.3f\n\n", num);//负号表示左对齐 printf("%08.3f\n", num);//08.3 首位的 0 表示右对齐 8 字符宽后,前面的空位补 0 return 0; }
运行结果:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/125832.html