操作符详解(C语言基础深入解析)

操作符分类

• 算术操作符: + 、- 、* 、/ 、%
• 移位操作符: << >>
• 位操作符: & | ^ `
• 赋值操作符: = 、+= 、 -= 、 *= 、 /= 、%= 、<<= 、>>= 、&= 、|= 、^=
• 单⽬操作符: !、++、--、&、*、+、-、~ 、sizeof、(类型)
• 关系操作符: > 、>= 、< 、<= 、 == 、 !=
• 逻辑操作符: && 、||
• 条件操作符: ? :
• 逗号表达式: ,
• 下标引⽤: []
• 函数调⽤: ()

进制之间的转换

  二进制转十进制相信大家已经会了,包括十进制转化成二进制。

  那二进制转化成其他进制又应该怎么算呢:

以二进制转化成八进制为例子,首先把0到7的数字转化成二进制,发现最多有三个二进制位就够了,比如7的二进制位是111,如果我们把01101011转化成八进制,从右边向左边;

0 1101011
153

 二进制转十六进制:

0到9,a到f各写成二进制,如01101011

01101011
6b

十六进制需要在前面加上0x,这个时候就0x6b

  

移位操作符

<< 左移操作符

>> 右移操作符

左移操作符:

规则;左边抛弃,右边补0;

#include<stdio.h>
int main()
{
	int num =10;
	int n = num << 1;
	printf("num=%d\nn=%d\n", num, n);
	return 0;
}

dd70fd9faf9e49238f585dfd6c0728c4.png

 出现这样的结果就是在二进制的情况下,左边抛弃了一位,右边补了一个0;

右移操作符

1.逻辑右移:左边用0补充,右边丢弃

2.算术右移:左边用原该值填充,右边丢弃 

在不同的编译器上,使用的情况不一样。

左移操作符向左移动一位相当于乘上一个2 ^ 1,左移两位就相当于乘上一个2 ^ 2。而右移操作符右移一位相当于除上一个2 ^ 1。

 

位操作符

&     按位与

|      按位或

^      按位异或

~     按位取反

注意;操作数必须是整数 

#include<stdio.h>
int main()
{
	int num1 = -3;
	int num2 = 5;
	printf("%d\n", num1 & num2);
	printf("%d\n", num1 | num2);
	printf("%d\n", num1 ^ num2);
	printf("%d\n", ~0);

	return 0;
}

 9a4c15f8173f43cf849370333b56729f.png

&     按位与 

运算符 “ & ” :把参见运算两个数所对应的二进制位分别进行“与”运算,即:两位同为“1”,结果才为“1”

|      按位或

运算符 “ | ” :把参见运算两个数所对应的二进制位分别进行“或”运算,即:两位同为“0”,结果才为“0”,否则为1

^      按位异或

按位异或运算规则为:把参见运算两个数所对应的二进制位分别进行“异或”运算,相同为0,相异为1

~     按位取反

 ~     按位取反:把目标的二进制位按位取反,即:使得每一位上的0变成1,1变成0

单目操作符

! ++  --  &  *  sizeof等

结构成员访问操作符

结构是一些值的集合,这些值称为成员变量。 

 

struct stu
{
  char name[20];
  int age;
  char sex;
}

整型提升 

C语言中,整型算术运算总是以缺省整型的精度来运算的,所以为了获得这个精度,表达式中字符和短整型操作数在使用之前会被转化成普通整型

 如何进行整型提升

  1.有符号 整数提升是按照变量的数据类型来提升的

  2. 无符号整数提升,高位补0;

 

 

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颦颦Admin@123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值