文章目录
浮点型类型
定义
浮点型又叫实型,即小数或实数的指数类型,因小数点可浮动而得名
例:3.14159=3.14159 * 101=0.314159 * 101=314.159 * 10-2
类型
float(单精度浮点型) double(双精度浮点型) long double(长双精度浮点型)
| 类型 | 字节数 | 有效数字 | 数值范围 |
|---|---|---|---|
| float | 4 | 5 | 正数部分:0,以及1.2 * 10-38~3.4 * 1038 |
| double | 8 | 15 | 正数部分:0,以及2.3 * 10-308~1.7 * 10308 |
| long double | 8 | 15 | 正数部分:0,以及2.3 * 10-308~1.7 * 10308 |
| long double | 16 | 13 | 正数部分:0,以及3.4 * 10-4932~1.1 * 104923 |
负数部分则是以0为对称轴,与正数部分相对称的数字区间
计算机中存储结构
| + | 1 | + | .314159 |
|---|---|---|---|
| 阶符 | 指数 | 数符 | 小数部分 |
| + | 10-1 | +10-1 | +0.314159 * 10+1 (3.14159) |
注意:
①由于用二进制形式表示一个实数以及存储单元的长度是有限的,因此不可能得到完全精确的值,只能存储有限的精确度
②小数部分占的位(bit)越多,数的有效数字越多,精度也越高
③指数部分占的位越多,能表示数的数值范围越大
表示方法
①十进制小数形式 由数字和小数点组成 例:3.14, 4. , .4 , .0, 0
②指数形式:“十进制小数或整数”+“e(或E)”+“十进制数整数” 例:3.5e-4 表示3.5*10-4
注意点
①e或E两边必须有数,不能省略
②单精度浮点数类型小数点后有效位数只有6位,双精度类型有效位数达16位③绝大部分c编译器规定小数点后最多保留6位,其余部分四舍五入==
定义浮点型类型的变量
通过类型定义符,可以定义一个浮点数类型的变量,与定义整数变量的方法相同
[类型定义符] 标识符;
例:
float fnum;
double dnum;
浮点类型变量也可以使用 printf ()函数输出,与整型变量不同的是:float的格式说明项为“%f”,double的格式说明项为“%lf”
例:
#include <stdio.h>
int main()
{
float fnum;
double dnum;
fnum=3.14;
dnum=3.141592653;
printf("%f",fnum);
printf("\n");
printf("%lf",dnum);
}
输出结果为3.140000 和 3.141593
fnum变量虽有效数字到小数点后两位,但输出时到小数点后六位
dnum变量虽然有效数字超过六位,但第六位后四舍五入
字符型类型
定义
字符类型保存的位ASCII码表中的字符,该类型占用1个字符,也可看作占用1个字节的整数类型,标示范围:0 ~ 255或-128 ~ +127
类型
| 类型 | 名称 | 字节数 | 取值类型 |
|---|---|---|---|
| [signed] char | 有符号字符型 | 1 | -128~+127 |
| unsigned char | 无符号字节型 | 1 | 0~+255 |
ASCII字符集
内容
1.字母:大写英文字母A~Z,小写字母a ~ z
2.数字:0~9
3.专门符号:29个包括
① !“ # & ‘ ( ) * + ,- . / : ; < = > ? [ \ ] ^ _ ` { | } ~
②空格符:空格、水平制表符(tab)、垂直制表符、换行、换页(form feed)
③不能显示的字符:空(null)字符(以‘\0’表示)、警告(以’\a’表示)、退格(以’\b’表示)、回车(以’\r’表示)等
在表示一个字符的时候,可以使用’ '将字符括起来的形式,也可以直接使用ASCII中的编码值。例:字母a可以使用’a’的形式表示,也可以使用数值97表示
具体内容(表格式)
| ASCII值 | 控制字符 | ASCII值 | 控制字符值 | ASCII值 | 控制字符值 | ASCII值 | 控制字符值 |
|---|---|---|---|---|---|---|---|
| 0 | NUL | 32 | (space) | 64 | 0 | 96 | 、 |
| 1 | S0H | 33 | ! | 65 | A | 97 | a |
| 2 | STX | 34 | " | 66 | B | 98 | b |
| 3 | ETX | 35 | # | 67 | C | 99 | c |
| 4 | E0T | 36 | $ | 68 | D | 100 | d |
| 5 | ENQ | 37 | % | 69 | E | 101 | e |
| 6 | ACK | 38 | & | 70 | F | 102 | f |
| 7 | BEL | 39 | . | 71 | G | 103 | g |
| 8 | BS | 40 | ( | 72 | H | 104 | h |
| 9 | HT | 41 | ) | 73 | I | 105 | i |
| 10 | LF | 42 | * | 74 | J | 106 | j |
| 11 | VT | 43 | + | 75 | K | 107 | k |
| 12 | FF | 44 | , | 76 | L | 108 | l |
| 13 | CR | 45 | - | 77 | M | 109 | m |
| 14 | S0 | 46 | . | 78 | N | 110 | n |
| 15 | SI | 47 | / | 79 | O | 111 | o |
| 16 | DLB | 48 | 0 | 80 | P | 112 | p |
| 17 | DCI | 49 | 1 | 81 | Q | 113 | q |
| 18 | DC2 | 50 | 2 | 82 | R | 114 | r |
| 19 | DC3 | 51 | 3 | 83 | S | 115 | s |
| 20 | DC4 | 52 | 4 | 84 | T | 116 | t |
| 21 | NAK | 53 | 5 | 85 | U | 117 | u |
| 22 | SYN | 54 | 6 | 86 | V | 118 | v |
| 23 | TB | 55 | 7 | 87 | W | 119 | w |
| 24 | CAN | 56 | 8 | 88 | X | 120 | x |
| 25 | EM | 57 | 9 | 89 | Y | 121 | y |
| 26 | SUB | 58 | : | 90 | Z | 122 | z |
| 27 | ESC | 59 | ; | 91 | [ | 123 | { |
| 28 | FS | 60 | < | 92 | |124 | I | |
| 29 | GS | 61 | = | 93 | ] | 125 | } |
| 30 | RS | 62 | > | 94 | ^ | 126 | ~ |
| 31 | US | 63 | ? | 95 | _ | 127 | DEL |
字符数字与整数数字概念不同,前者以整数存储方式即二进制补码形式存储,占2或4个字节,可进行整数运算;后者以ASCII码形式存储,占1个字节,不可进行整数运算
转义字符
定义
对于可输入的字符可以使用键盘的方式输入,也可以在屏幕上显示。但控制字符没有输入的方式,甚至没有办法显示再屏幕上。为此,C语言提供了另外一种表示字符的方法,即转义字符。
使用
转义字符是以反斜杠""引导的特殊字符常量表示。
例:n表示字母表中的字母n,转义字符\n表示的就是换行符,控制文本换行
内容(表格形式)
| 转义字符 | 含义 | ASCII码 |
|---|---|---|
| \a | 报警响铃 | 7 |
| \b | 退格符(backspace) | 8 |
| \t | 水平制表(tab) | 9 |
| \n | 回车换行 | 10 |
| \v | 垂直制表 | 11 |
| \f | 换页 | 12 |
| \r | 回车不换行 | 13 |
| " | 双引号 | 34 |
| ’ | 单引号 | 39 |
| \ \ | 反斜杠“ \ " | 92 |
| \ddd | 1~3位八进制数所代表的字符 | |
| \xhh | 1~2位十六进制所代表的字符 |
注意点
①\,‘,"这3个特殊含义字符的含义。对于字符\、’、”都用于特殊用途,如反斜杠\用于转义,如果直接使用’‘表示,则编译器无法识别,这是一个转义字符还是一个反斜杠字符
②\ddd和\xhh的使用:
例如:16进制41等于65,8进制101等于65,值为65的ASCII码是’A’
即:‘A’=‘\x41’=‘\101’
③转义字符中只能使用小写字母
④转义字符‘\v’与‘\f’不影响屏幕输出,它们仅影响打印机的打印输出
⑤C语言中,不可打印的字符都使用转义字符表示
字符类型的存储
①字符数据在内存中的存储形式:以二进制的ASCII码形式存储
②字符数据在内存中存储的是字符的ASCII码的值——一个无符号整数,其形式与整数的存储形式一样,所以C语言允许字符型数据与整型数据之间通用
因此,一个字符型数据,既可以字符形式输出,也可以整数形式输出
字符类型的使用
字符变量可以用一个字符为其赋值,也可以使用字符在ASCII码表中的编码值为其赋值,甚至整个编码值可以是16进制和8进制。输出字符变量时,printf()函数需要使用格式控制符%c。
例:
字符和整数互通:
#include<stdio.h>
int main()
{char ch1,ch2;
ch1='A';ch2='b';
printf("ch1=%c,ch2=%c\n",ch1,ch2);
printf("ch1=%d,ch2=%d\n"ch1,ch2);
}
输出结果为:
ch1=A,ch2=b
ch1=65,ch2=98
字母大小写转换:
#include<stdio.h>
int main()
{char ch1,ch2;
ch1='A';
ch2='b';
printf("ch1=%c,ch2=%c\n",ch1+32,ch2-32);
}
输出结果为:
ch1=a,ch2=B
总结
简单总结了基本数据类型中的浮点型和字符型,并记录了常用ASCII码表和转义字符表。
本文深入探讨了浮点型(单精度、双精度、长双精度)的定义、存储结构及表示方法,强调了浮点数精度和数值范围的特性。同时,介绍了字符型的ASCII字符集、转义字符及其在存储和使用中的注意事项,展示了字符与整型数据之间的交互。
3万+

被折叠的 条评论
为什么被折叠?



