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等价

man ascii:

三、输出的使用:

打印% 要写两个%%(转义)

 

putchar:

四、输入的使用

整形的输入:

字符的输入:

 

(看一下打印出的ascII码是多少:

 

man ascii

发现数字10是回车键

为什么会发生这样的情况呢?

三个的时候就没事了,

因为第一次输入完结束的时候 也读到缓冲区里面了

到第二个char b 的时候 直接把缓冲区里的 给读走了

怎么解决呢?

就别print了

·用char b 吃掉

·或者可以使用getchar()吃掉

有输入getchar,对应其实还有一个输出putchar

五、单引号输出问题

六、两数相除得小数说明

 

(1/2也骚操作了 变成00000 而不是0.5)

// 两个数相除,要想得到小数,分子分母必须有一个是小数,否则结果只会取整

这样也行:

07前置和后置区别

a++ 先用后加

++a 先加后用

结果是 a为2 b为2

08_比较和逻辑运算符

原文地址:https://www.cnblogs.com/eret9616/p/10206602.html