1 导入标准输入输出库
  2 #include<stdio.h> //头文件       std标准库   i/o输入输出库
  3 
  4 
  5 
  6 进制在程序中打印:
  7 int a =10; //十进制中的10
  8 int b=010;//八进制中的10   在程序中定义一个八进制书需要在数前面加上0区分
  9 int c=0x10;十六进制中的10    在程序中定义一个十六进制书需要在数前面加上0x区分
 10 int d=0X10;十六进制中10 大写的    在程序中定义一个十六进制书需要在数前面加上0X区分
 11 注意:在程序中没有办法表示一个二进制数
 12 %d将数据按照十进制输出
 13 %o将数据按照八进制输出
 14 %x将数据按照十六小写x进制输出
 15 %X将数据按照十六大写X进制输出
 16 
 17 4sizeof()
 18 求出数据类型在内存中占得大小(BYTE)
 19 int value =sizeof(变量名):
 20 int value = sizeof(数据类型)sizeof 数据类型
 21 注意:根据32位系统获取的数据类型大小
 22 char(字符型)【1 23 <short(短整型)【2 24 <= int (整型)【4 25 | float(单精度浮点型)【4 26 | long(长整型)【4 27  <long long (常常整形)【8 28 double(双精度浮点型)【8 29 
 30 输出和输入
 31  输出字符的两种方式
 32 1、printf("%c",变量)
 33 2、ptuchar(字符)
 34 输入字符的两种方式
 35 1、scanf("%c"&b变量)
 36 2、变量=getchar(字符)
 37 
 38 
 39 
 40 1、数据类型的定义
 41 1、数据类型的定义
 42 变量的定义:
 43 数据类型 变量名【标识符】 
 44 变量的赋值:
 45 变量名 = 值;
 46 数据类型 变量名【标识符】 = 47 
 48 标示符的命名规则:
 49 1、字母、数字、下划线
 50 2、不能以数字开头
 51 3、见名知义
 52 4、不能和同一函数内的其他标示符重复
 53 5、不能使用C语言关键字
 54 6、区分大小写
 55 
 56 标示符:
 57 ABC
 58 abc
 59 —abc
 60 _abc.
 61 123_bac
 62 a_b_123
 63 
 64 常量的定义:
 65 1const 数据类型 常量名
 66 2、【宏定义】#deifne 常量名 值
 67 注意:
 68 1、通过#define 定义的常量 是根据值来匹配数据类型的
 69 2const 修饰的常量是不安全 可以通过指针来修改
 70 
 71 
 72 2、进制:
 73 二进制:
 74      二进制逢二进一,所有的数组是0、1组成
 75 十进制转二进制:
 76 除二反序取余法:将十进制数每次除以2 取出余数 按照结果倒叙依次获取结果
 77 二进制转十进制:
 78 权值法:将二进制数各个位数从0位开始乘以2的N幂 将各个位数的结果相加
 79 八进制:
 80      八进制逢八进一,所有的数组是0到7组成
 81 十进制转八进制:
 82 除八反序取余法:将十进制数每次除以8 取出余数 按照结果倒叙依次获取结果
 83 
 84 十六进制:
 85      十六进制逢十六进一,所有的数组是0到9和A到F组成 字母不区分大小写
 86 十进制转八进制:
 87 除十六反序取余法:将十进制数每次除以16 取出余数 按照结果倒叙依次获取结果
 88 
 89 8421法则:
 90 将各个位数的二进制用十进制中的【数字 】来表示多位的二进制数 通过【数字 】相加就可以得到二进制数的数据
 91 8 1000
 92 4 100
 93 2 10
 94 1 1
 95 1000
 96   100
 97     10
 98       1
 99 ————
100 1 1 1 1
101 
102 进制在程序中打印:
103 int a=10;//十进制中的10
104 int b=010;//八进制中的10 在程序中定义一个八进制数需要在数前面加上0区分
105 int c=0x10;//十六进制中的10在程序中定义一个十六进制数需要在数前面加上0x区分
106 int d=0X10;//十六进制中的10在程序中定义一个十六进制数需要在数前面加上0X区分
107 注意:在程序中没有办法表示一个二进制数
108 %d 将数据按照十进制输出
109 %o将数据按照八进制输出
110 %x将数据按照十六进制小写输出
111 %X将数据按照十六进制大写输出
112 
113 3、原码、反码、补码
114 一个有符号的整型数据可以分为两部分一部分是符号位、一部分是数字位
115 无符号数据类型只包含数字位部分
116 signed int a= 1986(有符号标识 signed可以不用写) 
117 二进制:11111000010
118 
119 1986原码:0000 0000 0000 0000 0000 0111 1100 0010
120 -1986原码:1000 0000 0000 0000 0000 0111 1100 0010
121 
122 1986反码: 0000 0000 0000 0000 0000 0111 1100 0010
123 -1986反码:1111 1111 1111 1111 1111 1000 0011 1101
124 
125 1986补码: 0000 0000 0000 0000 0000 0111 1100 0010
126 -1986反码:1111 1111 1111 1111 1111 1000 0011 1110
127                  1 0000 0000 0000 0000 0000 0000 0000 0000
128 溢出:在数据进行操作的时候会导致超出数据类型大小,会向前位进1,多于原始数据类型大小,会被系统自动舍弃 保留从后面开始数据类型大小的位数  
129  
130   10+20
131 0000 1010
132 0001 0100
133 0001 1110
134 -10+-20
135 原码:1000 1010
136 反码:1111 0101
137 补码:1111 0110
138 
139 原码:1001 0100
140 反码:1110 1011
141 补码:1110 1100
142      1111 0110
143      1110 1100
144 补码:1110  0010
145 反码:1110 0001
146 原码:1001 1110 16+8+4+2=-30
147 
148 练习:用生辰年份年去生辰日期
149 1992
150 -326
151 1、将10进制转化为二进制
152      19920000 0000 0000 0000 0000 0111 1100 1000
153      -3260000 0000 0000 0000 0000 0001 0100 0110
154 2、加符号位将数据变为原码
155      19920000 0000 0000 0000 0000 0111 1100 1000
156      -3261000 0000 0000 0000 0000 0001 0100 0110
157 3、转化为反码
158      19920000 0000 0000 0000 0000 0111 1100 1000
159      -3261111 1111 1111 1111 1111 1110 1011 1001
160 4、将反码+1转化为补码
161      19920000 0000 0000 0000 0000 0111 1100 1000
162      -3261111 1111 1111 1111 1111 1110 1011 1010
163 5、计算补码
164      19920000 0000 0000 0000 0000 0111 1100 1000
165      -3261111 1111 1111 1111 1111 1110 1011 1010
166      结果  :  1 0000 0000 0000 0000 0000 0110 1000 0010
167 6、将数据转化为10进制
168 110 1000 0010
169 2+128+512+1024 = 1666
170 无符号:
171 unsigned int a= 1986
172 无符号:1111 1111 1111 1111 1111 1111 1111 1111 = 
173              0000 0000 0000 0000 0000 0000 0000 0000 =0
174 无符号整型取值:0-42949672952^32-1175 无符号的字符型:0-255
176 有符号:
177      int a= 1986
178      0111 1111 1111 1111 1111 1111 1111 1111 = 2147483647
179      0000 0000 0000 0000 0000 0000 0000 0001
180 原码: 1111 1111 1111 1111 1111 1111 1111 1111 = -2147483647
181 反码:1000 0000 0000 0000 0000 0000 0000 0000
182 补码:1000 0000 0000 0000 0000 0000 0000 0001=-2147483647
183 -0的补码
184 补码:1000 0000 0000 0000 0000 0000 0000 0000=-0 = -2147483648
185 
186 
187 
188 4sizeof()
189 求出数据类型在内存中占的大小(BYTE)
190 int value  =sizeof(变量名);
191 int value = sizeof(数据类型) sizeof 数据类型
192 注意:根据32位操作系统获取的数据类型大小
193 char(字符型)【1】<short(短整型)【2194 <=int(整型)【4】|float (单精度浮点型)【4】|long(长整型)【4195 <long long(长长整型)【8】|double(双精度浮点型)【8196 
197 输出和输入:
198 输出字符的两种方式:
199 1、printf("%c",变量)
200 2、putchar(字符)
201 输入字符的两种方式:
202 1、scanf("%c",&b变量)
203 2、变量=getchar()
204 
205 
206 char 1B=8bit
207 0x7f
208 0111 1111
209 0000 0010
210 1000 0001
211 1000 0000
212 1111 1111 -127
213 0xff 
214 1111 1111
215 0000 0001
216 1 0000 0000
217 
218 5、数据类型:
219 字符型:
220 char 用于存储一个单一的字符
221 在格式化输入printf("%c",变量)通过占位符%c来接收的
222 每一个char类型都对应在ASCII中有具体的值
223 例如:数字【0】对应的ASCII值为48
224 字母【A】对应的ASCII值为65
225 字母【a】对应的ASCII值为97
226 转义字符:
227 计算机会使用一些字符来完成程序设计,如果在编程中想使用这些字符的本意,需要通过【\】来转义
228 注意:想在控制台中输出%  需要使用【%%229 
230 
231 浮点型:
232 float 用于存储带有小数的数据
233 在格式化输入printf("%f",变量)通过占位符%f来接收的
234 
235 double 用于存储带有小数的数据 数据长度比float更长
236 注意:因为将小数转化为二进制时不是一个精确的值,所以浮点型都会有数据偏差

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。