【C语言6】操作符和表达式求值

这篇博客详细介绍了C语言中的操作符和表达式求值,包括算术操作符、移位、位操作、赋值操作符、单目操作符、sizeof、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用、结构成员等,并探讨了隐式类型转换、操作符属性和问题表达式。
摘要由CSDN通过智能技术生成

目录

一、操作符详解

(1)算术操作符

(2)移位

(3)位(两个数必须是整数)

(4)赋值

(5)单目操作符

(6)sizeof和数组

(7)关系操作符

(8)逻辑操作符

(9)条件操作符(也叫三目操作符)

(10)逗号表达式

(11)下标引用-----只有一个操作数

(12)函数调用

(13)结构成员

二、表达式求值

(1)隐式类型转换

(2)操作符的属性

(3)一些问题表达式


一、操作符详解

(1)算术操作符

取余/取模:

1)使用“/”,如果想打印小数,那么两个数当中至少有一个是浮点数。

2)浮点数默认是双精度。

3)在数后面+f,可以将数变成单精度。

4)取模的两个数要是整数。

(2)移位

1)<<是指把二进制位向左移动一位,举例:int a=2; int b= a<<1;结果:4。

此时,最左边的0丢失,在最右边补0。

2)>>是指把二进制位向右移动一位,举例:int a=10; int b= a>>1;结果:5。

算术右移:此时,最右边的0丢失,在最左边补原符号位0。

逻辑右移:此时,最右边的0丢失,在最左边补0。

3)补充:

整数的二进制的表示形式:

原码:原二进制序列

反码:符号位不变,其他位按位取反

补码:反码+1在内存中,数据存放的是补码。

注意:正整数的原码、反码、补码不变;负整数的原码、反码、补码按上诉变化。

举例:-1,二进制(32位):

原码:10000000 00000000 00000000 00000001

反码:11111111 11111111 1111111 11111110

补码:11111111 11111111 11111111 11111111

此时,如果向右移1位:算术运算:-1;逻辑右移:1。

(3)位(两个数必须是整数)

1)&是指将每一位二进制位相与,举例:int a=3; int b=5; int c= a & b;结果:1。

3的二进制:00000000 00000000 00000000 00000011

5的二进制:00000000 00000000 00000000 00000101

3&5的二进制:00000000 00000000 00000000 00000001

2)|是指将每一位二进制位相或,举例:int a=3; int b=5; int c= a & b;结果:7。

3的二进制:00000000 00000000 00000000 00000011

5的二进制:00000000 00000000 00000000 00000101

3|5的二进制:00000000 00000000 00000000 00000111

3)^是指将每一位二进制位相异或(异或:相同取0,相异取1),举例:int a=3; int b=5; int c= a & b;结果:6。

3的二进制:00000000 00000000 00000000 00000011

5的二进制:00000000 00000000 00000000 00000101

3^5的二进制:00000000 00000000 00000000 00000110

4)一个面试题:不使用第三个变量,交换3和5的值。

有变量:

int main()
{
	int a = 3;
	int b = 5;
	int c = 0;
	c = a;
	a =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值