0
点赞
收藏
分享

微信扫一扫

3.28 c语言

yellowone 2022-03-31 阅读 75
c#


逻辑右移:右移后左边添加0
算术右移:右移后添加的位与原数的符号位相同

算术左移和逻辑左移的效果相同,算术右移和逻辑右移的效果不同

C语言中,对于移位操作执行的是逻辑左移和算术右移不过对于无符号类型,所有的移位操作都是逻辑的
所以要相对一个有符号数执行逻辑右移,那么可以先将它强制类型转换为无符号类型

按位与:二进制位都为1则为1,不同则为0

按位或:只要又一个为1,则为1

按位异或:对应的两个数相同则为0,不同则为1

case:交换两变量的值,但不另外定以变量

方法1:

当a和b的值太大的时候,两个数加起来很容易溢出

 方法2:

注意sizeof()是一个操作符,不是函数,它的返回值类型是unsigned int(%u表示) ,且sizeof里面的表达式不参与运算,如下:

逻辑与操作符:只要有一个0,则结果为0,故输出为1 2 3 4

逻辑或操作符:只要又一个1,则结果为1,故输出为1 3 3 4

 在表达式计算时,各种整形首先要提升为int类型(只有char和 short),char为有符号的char

如何进行整形提升呢:

无符号的:直接在被截断的前面补0

有符号的:最高位是0则补0,最高位是1则补1

如:

 

 

 会输出c,因为前两个都会整形提升,都不会为原来的值

小的转换为大的,精度低的转换为精度高的 

举报

相关推荐

3.28 c++

Week of 3.28

JAVA 学习 3.28

3.28尾随鼠标

前端学习笔记之rem适配布局 3.28

C语言-c语言组成

0 条评论