\ddd ddd表示1~3个八进制的数字。如:\130 X \xdd dd表示2个十六进制数字。如:\x30 0
我们首先来看下面一串代码:
#define _CRT_SECURE_NO_WARNINGGS 1 #include<stdio.h> int main() {printf("%c\n", '\130');return 0; }
这个输出结果是什么呢?
CTRL+f5 代码走起来,我们一看便知:
这里为什么会是X呢?跟X有什么关系呢?
首先我们在这里讲一下进制:
那这里的88与X有什么关系呢?其实了解的同学这里可能知道axcii表:
ASCII 码 字符 ASCII 码 字符 ASCII 码 字符 ASCII 码 字符 十进位 十六进位 十进位 十六进位 十进位 十六进位 十进位 十六进位 032 20 056 38 8 080 50 P 104 68 h 033 21 ! 057 39 9 081 51 Q 105 69 i 034 22 " 058 3A : 082 52 R 106 6A j 035 23 # 059 3B ; 083 53 S 107 6B k 036 24 $ 060 3C < 084 54 T 108 6C l 037 25 % 061 3D = 085 55 U 109 6D m 038 26 & 062 3E > 086 56 V 110 6E n 039 27 ' 063 3F ? 087 57 W 111 6F o 040 28 ( 064 40 @ 088 58 X 112 70 p 041 29 ) 065 41 A 089 59 Y 113 71 q 042 2A * 066 42 B 090 5A Z 114 72 r 043 2B + 067 43 C 091 5B [ 115 73 s 044 2C , 068 44 D 092 5C \ 116 74 t 045 2D - 069 45 E 093 5D ] 117 75 u 046 2E . 070 46 F 094 5E ^ 118 76 v 047 2F / 071 47 G 095 5F _ 119 77 w 048 30 0 072 48 H 096 60 ` 120 78 x 049 31 1 073 49 I 097 61 a 121 79 y 050 32 2 074 4A J 098 62 b 122 7A z 051 33 3 075 4B K 099 63 c 123 7B { 052 34 4 076 4C L 100 64 d 124 7C | 053 35 5 077 4D M 101 65 e 125 7D } 054 36 6 078 4E N 102 66 f 126 7E ~ 055 37 7 079 4F O 103 67 g 127 7F DEL 计算机在编码的时候,是怎么存储这些数值的?
在这里,大写的A,我们给它编号65,同理:
字符 axcii值
A - 65
B - 66
a - 97
b - 98
同学们发现,这里是不是给了各个字母对应的编号,这样的编码就叫做ascii编码
那这里我们再看一下88对应的字符是X
此处再次强调\ddd就是把\后面的1~3个八进制的数字转换成十进制数字后,作为ascii值所代表的那个字符
是不是感觉我又充满了力量?是不是感觉突然强大了?
很好,那么我们再来一个巩固一下:
#define _CRT_SECURE_NO_WARNINGGS 1 #include<stdio.h> int main() {//printf("%c\n", '\130'); //Xprintf("%c\n", '\135');return 0; }
我们先来算一下八进制123转换为十进制:123→83→S
//1~3个八进制数字,不一定非要三个
这个地方呢我们可以观察一下ASCII表,记住了0、A、a是不是其他的直接也相当于记住了?
小写字母-32就是对应的大写
那么我们接下来继续看\xdd:
#define _CRT_SECURE_NO_WARNINGGS 1 #include<stdio.h> int main() {printf("%c\n", '\x42');return 0; }
这个地方x表示十六进制,dd表示两个十六进制数字
今天的知识分享到这里就结束了,同学们如果感觉有帮助的话不妨一键三连,转发一下可否?