c语言学习经验

本文概述了计算机编程中的关键概念,包括整型数据在内存中的存储、反码和补码的定义及其用途,以及赋值语句与表达式、逻辑运算符的优先级、scanf输入函数的注意事项和while与do...while语句的区别。
摘要由CSDN通过智能技术生成

1、

对于整型int

1个字节有8位。

int一般只占用2个字节,

long int占用4个字节。

2、

什么是反码跟补码

正数的补码就是其本身;

负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(也即在反码的基础上+1)

[+1] = [0000 0001]原= [0000 0001]反= [0000 0001]补

[-1] = [1000 0001]原= [1111 1110]反= [1111 1111]补

对于负数,补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码再计算其数值。

为什么会出现反码跟补码呢,原因很简单!!

就是因为计算机不能直接识别负数,并且我们一般规定1个字节8位的首位为符号,0则代表正数,1代表负数。

这时直接用正数加负数得到的结果就跟原来相差很大,可以说是不正确。

所以就引入了反码,但是还是出现了一个问题,计算出来的数据跟实际数据相差1,原因就是+0跟-0的出现。

比如说+0是00000000,-0是10000000。

所以后来再引入了补码。

正数的反码还是不变,正数的补码还是不变。

但是,

负数的反码则是1变0,0变1。补码则是符号位不变,其余按位取反,再加1。最后正数跟负数相加,结果还要在-1。

3、

赋值语句跟赋值表达式的区别:

列如

a = 1;

是一个赋值语句

再列如

a = 1

这是一个赋值表达式,显而易见什么是赋值语句什么是赋值表达式。

4、与或非, && ,||,!

这三者的优先级关系

! > && > ||

例如

a = 3,b = 4,c = 5

a || b+c && b -c

这题我刚开始也看错了,我先算a || b+c 最后再算&&算出结果为0。但是真实答案为1。

正确答案的解题过程: 因为&&的优先级高于||,所以先算右边部分即b + c && b-c ,得0,最后算

a || 0得 1。是不是很简单。

5、scanf()会遇到的问题

int num;

scanf("%d",&num);   //注意这里的&,非常重要,不要漏了,你漏了他不会报错,能运行,但是会获取不了数据。!!!!!

6、while语句跟do ........while的区别;

while是先判断条件是否成立,然后在执行。

do.......while是先执行后判断条件。他是不管条件是否成立都是先执行以下,然后判断条件是否成立,以便继续运行下去。如果成立则继续运行,否则停止。

(本人觉得,do......while的产生有点多余。你看啊,do.....while既然是要先执行后判断条件,就跟1、先使用表达是语句,后使用while语句一样。)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值