C语言基础 (5) 常用操作符
01 课程回顾
变量的起名:字母数字下划线 不能是关键字
常量
变量提升:老的编译器这样会报错
运算符:sizeof、+、-、x … …
进制:
1111
8421
计算机几乎都是二进制系统,而且是以补码形式存储
八进制一位对应二进制三位
十六进制一位对应二进制四位
rwx可读可写可执行 这个权限其实是八进制
000 (十进制中的0)
111 (十进制中的7)
计算机存储的最小单位为1字节
1个字节=8位
1k=1024字节
1m=1024k
1g=1024m
B与b:byte和bit
原码反码补码:
再举个正数的例子:
0x9… 即1001 但是unsigned说明是一个无符号数
如果以%d来处理,就是以有符号来处理的
%u表示以无符号处理
char类型的范围:
无符号数:
char的本质就是1个字节大小的整型
(小写转大写-32 大写转小写+32 八进制(\后面三个数字)、十六进制转义字符(\x后面两个数字))
\0和数字0等价
man ascii:
三、输出的使用:
打印% 要写两个%%(转义)
putchar:
四、输入的使用
整形的输入:
字符的输入:
(看一下打印出的ascII码是多少:
man ascii
发现数字10是回车键
为什么会发生这样的情况呢?
三个的时候就没事了,
因为第一次输入完结束的时候 \n也读到缓冲区里面了
到第二个char b 的时候 直接把缓冲区里的\n给读走了
怎么解决呢?
就别print了
·用char b 吃掉\n
·或者可以使用getchar()吃掉
有输入getchar,对应其实还有一个输出putchar
五、单引号输出问题
六、两数相除得小数说明
(1/2也骚操作了 变成00000 而不是0.5)
// 两个数相除,要想得到小数,分子分母必须有一个是小数,否则结果只会取整
这样也行:
07前置和后置区别
a++ 先用后加
++a 先加后用
结果是 a为2 b为2
08_比较和逻辑运算符