操作符详解(2)

简介: 操作符详解(2)

一、按位取反的应用场景

1、如何将一个二进制数其中的某一位改为1

image.png

可以进行按位或(若有一个为真1,输出结果就为真),或上一个1

TIP:如何定位二进制中的某一位数?

可以左移n个字符。

2、将第一题的数再还原还回去

image.png

可以按位与,但如何获得按位与这个二进制数,需要将原来的二进制进行按位取反!

二、前置++与后置++的区别

image.png

第一个输出结果为11,第二个10

三、sizeof易错题

输出结果40 10 4 4

第三个和第四个:因为数组在传参时,出的是第一个元素的地址,所以接受时,用指针变量进行接收,指针的大小是4/8个字节,所以输出结果要么4,要么8(具体看电脑配置)

四、逻辑操作符

逻辑操作符通常判断真或假。逻辑逻辑嘛!

image.png

输出结果就为假-------0

只要有一个为0假,输出结果就为假。

image.png

逻辑或,只要有一个为真,输出结果就为真---1,两个同时为假,输出才为假。

五、一道面试题(逻辑与的套路):

image.png

1 2 3 4

因为a++,先使用后加加,所以a=0,为假。、

TIP:逻辑与操作符的特点:只要左边为0,右边不管是什么都不算

image.png

逻辑或,只要左边为真,右边都不算!

总结:计算机很懒!逻辑与,只要左边为0,右边都不算!逻辑或,只要左边为真,右边都不算!\

六、结构体操作符

image.png

首先在主函数外面创建一个结构体,结构体即为结构,所以只需要定义变量名,创建结构,注意结构体后面需要;!然后在主函数里进行初始化。

注意struct stu是一种变量,跟int、float类型一样

初始化时,需要用到大括号{}

如果想要打印,使用s1,其中的某个变量,需要用到.点操作符

->结构体指针指向操作符

image.png

、、


七、表达式求值

TIP:二进制计算方法:逢二进一

1、隐式类型转换

image.png

需要将字符和短整型操作数进行转换,称为整型提升

如何进行整型提升?

按照变量的数据类型的符号位进行提升

总结:在计算前,就应该进行整型提升,在表达式中只要出现char/short类型,不符合int就要进行整形转化

实例一

image.png

输出结果是-126

原因:

1、3为整型,在内存中存储4个字节,32个比特位000000000000000000000000000011

2、但被存储到了只有一个字节的char类型,所以被截断,只有8个比特位,00000011

3、同理,经过win+R,输出calculate,找到计算器,得出127的二进制数是01111111,也是占一个字节

4、在计算前应该进行整型提升,

image.png

5、在进行截断,此时c存储的是10000010.此时又要进行整型提升,按照高位的符号进行补位

image.png

6、我们在打印是原码,而存储的是补码,所以经过变换,得出结果-127


实例二

image.png

TIP:16进制转化为二进制的算法

0x前缀表示是十六进制,a=10,b=11,c=12,d=13,e=14,f=15,因为是逢16进一,左移没有16,就像二进制没有2

只需将每一位的十六进制数转换为相应的4位二进制数

注意是4位。例如16进制的1转化为二进制就是0001

此题有==,表示有计算,所以需要整型提升


实例三

image.png

输出结果1 4 1

原因:+c表示计算,所以需要进行整型提升,变成4个字节

“!”是C语言中的非运算符,在变量前面使用它,会构建非运算表达式!所以结果还是1、


算数转换:

image.png

int表示最低一级,先转换为高级类型,再进行计算

注意:

image.png

这个是问题表达式,无法确定唯一的计算方式,总结以后写代码,就分开来写

相关文章
|
存储 编译器 数据安全/隐私保护
操作符详解(上)
操作符详解(上)
69 0
|
9月前
|
编译器 C语言 C++
操作符详解2(二)
本文介绍了编程中的操作符转换和表达式解析规则。当操作数类型不同时,会进行寻常算术转换,按照long double、double、float等类型顺序进行向上转换。表达式求值时,虽然操作符有优先级,但不能决定操作数的求值顺序,例如`a*b + c*d + e+f`中乘法先于加法,但具体计算顺序不确定,可能导致不同结果。同样,如`c++ + c--`这样的表达式也是有歧义的,因为++和--的左右结合性不能确定操作数的获取顺序。文章强调,复杂的表达式可能因编译器差异产生不同结果,应避免使用可能导致非唯一计算路径的表达式以减少潜在风险。
71 0
|
SQL
LIKE操作符
LIKE操作符
101 0
|
8月前
|
索引
操作符,详细讲解
操作符,详细讲解
|
C语言 索引
【C】操作符详解
今天给大家带来一篇关于C语言操作符的详细介绍,在C语言中操作符主要有以下几种:
|
存储 编译器 C语言
操作符详解(完)
操作符详解(完)
104 0
|
存储
操作符(详解)
操作符(详解)
149 0
|
索引
初识操作符
初识操作符
113 0
初识操作符
|
存储 索引
【操作符】
【操作符】
52 0

热门文章

最新文章