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
标签:反码,语言,补码,负数,详解,操作符,------,原码 From: https://www.cnblogs.com/yu7921/p/18148780