C语言第二天-------基本类型和运算符

本文介绍了C语言的基本类型,包括整型、字符型和浮点型,以及它们的常量和变量。详细讲解了ASCII码与字符的二进制对应关系。此外,还阐述了C语言的运算符,如赋值、算术、判定、逻辑等,并探讨了原码的概念,包括正负整数的原码表示。最后,提供了一些练习题加深理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序=算法+数据

1、C语言的基本类型(按类型):整型,字符型,浮点型

C语言按是否可变:常量,变量
1、常量:
整型常量:
2、变量:可以改变的量
加粗样式1、定义变量:申请空间
类型 变量名;
1、整型变量:short int long
short a
short存储范围:
有符号:[-32768,32767]
无符号:[0,65535]
2、有无符号:
符号:signed 类型 变量名;
无符号:unsigned 类型 变量名;
注:默认定义是有符号的
3、字符型:
常量: ‘a’ ‘b’ ‘;’ 为了与变量名进行区分
转义字符: '\n’换行 ‘\t’ tab ‘\r’抬头 ‘’’ '字符 ‘\’ \
注:注意如下字符区别
空字符 : ‘\0’ —>0
空格字符: ’ ’ ---->32
空格字符是可显示字符,空字符为操作字符
变量:
定义变量:
字符 变量名;

ASCII:由于计算机只能识别二进制,所以每一个字符都有一个特定的数字对应

man ascii查看ASCI码
4、浮点型:
常量:
3.14 3e4
变量:单精度float 双精度double

		输出时      %f            %lf

2、初始化:在定义变量同时赋初值
3、引用内容:通过名字引用变量的内容
注:1、在同一函数中不能出现同名现象
2、在引用前,必须先定义。(java与C的区别之一)

2、运算符: 为用户提供运算

运算符表达式:(一定有结果!!)
0、变量达表式:
int a=1;
a;
表达式结果:整型值(4Byte) 浮点型(double)
1、空间长度: sizeof
求空间长度表达式 sizeof 空间名 求空间长度表达式结果:类型长度
2、赋值运算符: 左值=右值 结果:右值 注:将左表达式的值赋值给左值(左值必须是变量)
3、算术运算符:+ - * / %
结果:算术结果
4、判定运算符: > >= <= < != ==
结果: 真1 假0
5、逻辑运算符: 与&& 或|| 非! (适用于表达式!!)
表达式1 && 表达式2 结果: 一假则假
表达式1 || 表达式2 结果:一真则真
!表达式 结果:取反
注:逻辑 非0为真 0为假
6、自增/自减运算符:++ –
前自增/减: ++i --i (i)先自增,(结果)再取(i)值,
后自增/减: i++ i-- (结果)先取(i)值,(i)再自增
7、三目运算符:
表达式1?表达式2:表达式3
结果:表达式1为真(非0),结果为表达式2,否则为表达式3
8、* & (进入指针再讲)
9、()优先级运算符 (最高)
例如 : (1+2)*3
10、位运算符: 按位与& 接位或| 按位取反~ 按位异或 ^ 右移>> 左移<<

		 i 10  1010
		 j 8   1000
		&-------------  
			   1000	
			   			   
		 i 10  1010
		 j 8   1000
		|-------------  
			   1010			


		i=10	1010
		j=8		1000
		^-------------
				0010
			   
		i=10      1010   i>>2     移进来补,移出去舍弃
				  
			   
优先级:  ( ) > 算术运算符 >自增自减 >判断运算符 >逻辑运算符 > 赋值运算符
3、原码(二进制原码):
-10       10001010
-1  -》   10000001		10000000 0000001

反码:将原码取反(符号位是不变量)
-10 -》 11110101
-1 -》 11111110 11111111 1111110
补码:在反码基础上+1
-10 -》 11110110
-1 -》 11111111 11111111 1111111 = -32767

整型的存储方式:(物理方式,存放在存储区的)
1、正整数是以原码形式存放的(二进制原形)
(8位数据)
10 =00001010
2、负整数是以补码形式存放
注:取出应用时,必须转换为原码 -1

练习:
1、请计算机并打印unsigned int a的最大值
unsigned int a =-1;
printf("%u\n",a);

2、练习i =0 ,j=0 i与j的值和表达式结果
如下结果: i++ && j++
i++ || j++
++i && j++
++i || j++

注:当&之前当数值为0时,不运行后面的式子,同理,当|之前的数值为1时,不运行后面的式子。
3、通过三目运算符求 最值
a=1 b=2 c=0 求最值
(a>b?(a>c?a:c):(b>c?b:c))(其实跟 if 类似)
4、 int a=0;(int占4Byte)
要求:将高两字符存放为5
低两字节存放为8
即: 0000 0000 0000 0101 0000 0000 0000 1000
在这里插入图片描述

int a=67305985中的每一个字节值取出,
在这里插入图片描述

short a=0(2Byte),将第5位到第8位初始为1 即:0000 0000 1111 0000
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值