c语言操作符详解

1,算数操作符

%两个操作数必须为整数

/

2,移位操作符 (只作用于整数)

整数的二进制表示有原码,反码,补码,存储到内存的是补码 ,用的也是补码进行运算

举例

10000000000000000000000000000001------原码

11111111111111111111111111111110        ------反码

正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反)

11111111111111111111111111111111        ------补码(正数的补码是其本身,负数的补码是其反码加一)

(1)>>——右移操作符,移动的是二进制(有除2的效果)

①算术右移

右边丢弃,左边补原符号位

②逻辑右移

右边丢弃,左边补0

 

(2)<<——左移操作符(有乘二的效果)

左边丢弃,右边补0 

这个还挺有趣的,多运行找到规律,不能移动负数位

(3)按位与&

a=2          //00000000000000000000000000000010

b=4         //00000000000000000000000000000100

 c=a&b=0//00000000000000000000000000000000

(4)按位或|(同上)

a=3       //000000000000000000000011

b=5       //000000000000000000000101

c=a|b=7//000000000000000000000111

(5)按位异或^

对应二进制位相同为0,相异为1

练习一下

不创建变量交换两个整型

①加减法交换(可能会溢出)

②异或法

统计num的补码中有几个1       

①无法求负数                                                                 ②优化

     

3,赋值操作符

省略,见手写笔记

4,单目操作符

!   -     &     sizeof

posted @ 2024-04-21 12:18  一只特立独行的猪yuu  阅读(1)  评论(0编辑  收藏  举报