小叮当的任意门
- 操作符分类
- 1. 算数操作符
- 2. 移位操作符
- 二进制(小插曲)
- 左移动操作符
- 右移操作符
- 3. 位操作符
- & 按位与 &
- 按位或 |
- 按位异或 ^
- 赋值操作符
- 复合赋值符
- 单目操作符
操作符分类
在这里我们有:算数操作符 移位操作符 等
今天我们就先来讲这几个操作符
1. 算数操作符
这是我们加 ,减 ,乘 ,除 ,取模(取余)
加减乘 就没有必要讲了,叫你奶奶来都会。
讲一下 / 除法操作符
这里的除号就是我们上小学学的一个意思。
备注:对于除法操作符,两边的操作数都是整数,所以执行起来的是整数除法。
如果想要计算出小数,除号的两端至少有一个操作数是浮点数
> 那如果想计算出小数点后面一位呢?
直接在lf前面加.1,就可以了。
%取模(取余)
这个操作符计算的是整除之后的余数
取模操作符的两边的操作数只能是整数
不然会报错哦
2. 移位操作符
二进制(小插曲)
讲到移位操作符,那就必须要讲解一下2进制了
移(2进制)位操作符
整数的2进制表示形式,有3种
原码
反码
补码
内存中的存储其实是:补码的二进制
即移动的时候,移动后都是补码
12——数值
在这里,我们可以有都种表达方式
2进制:1100
8进制:14
10进制:12
16进制:c
正数
正数的原码,反码,补码是相同的
因为是整型,而且占4个字节(32bit)
第一个数字是0——为正数
负数
同理可得:第一个数字是1——为负数
负数的原码,反码,补码是要经过计算的
反码是原符号位不变,其他位按位取反,就是反码
补码是反码+1
其实反过来也可以
// //10000000000000000000000000001010 - 原码
// //11111111111111111111111111110101 - 反码
// //11111111111111111111111111110110 - 补码
//
// //11111111111111111111111111110110 - 补码
// //10000000000000000000000000001001
// //10000000000000000000000000001010 - 原码
//
// int b = -10;
说明这几条路都是行得通的哦
左移动操作符
直接上图
这就是具体原理
a<<1的结果是移动之后的效果,但是a的是不变的。比如:int a = 10; int b = a+2;
对于负数打印出来的是原码,正数三个码都是一样的,无所谓~~~
右移操作符
算数操作符
左边用原来的符号填补,右边就嘎了
下面就来直接上手
下面就让我来讲解一波:先看a(负数),因为存储的,运行的是补码,所以先要从原码变换到补码。然后在向右移动,最后惊奇的发现移了好像没移(对于这个数字)。后面打印出来的是需要原码的哦,再变换,好家伙又回去了。
为什么有要变来变去呢? 看图就知道了,内存中的值还真的是这样
>
这里说明一下
你说这是个啥玩意蛮
3. 位操作符
& 按位与 &
先来说明按位与操作符,对于的二进制位有0,则为0,两个同时为1才为1
注意最后为正哦
按位或 |
按2进制位或
对应的二进制位有1则为1,两个同时为0则为0
按位异或 ^
按2进制位异或
对应的二进制位:相同为0,相异为1
下面我们来一个题
一道变态的面试题 不能创造临时变量(第三个变量),实现两个数的交换
这里我们先就来一个第三个变量,酱油瓶tmp
这不就可以了呀
还有一种小天才的写法
注意:如果数字过大就栈溢出了。但是这个数学思路还是表示肯定的
下面我们就用异或操作符来写
讲解:
所以按位异或是支持交换律的
异或操作符交换2个变量
但是 可读性差,效率也不如使用临时变量的方法
而且只能针对整数的交换
酱油瓶tmp才是王道
赋值操作符
赋值操作符是一个非常不错的操作符,
他可以让你得到一个你满意的值,也就是你可以给自己重新赋值。
注意:
一定要规范写作
不然就是没有初始化
复合赋值符
学完前面的,这个综合起来也就简单
单目操作符
a +1; + a 1 操作符有2个操作数,为双目操作符
单目操作符,只有一个操作数
然后我们再补充一下:布尔类型
注意引用头文件
闰年也可以判断
最后
unsigned与unsigned 似乎与2进制有关,具体看图去
格桑 妮可 阿七 石榴 东硕 大冰 安子 浮游
(童声)赵雷 三文鱼 胖子 小柳
(童声)卓玛 阿达 英子 回锅肉
阿刁 明天是否能吃顿饱饭
你已习惯 饥饿是一种信仰
阿刁 不会被现实磨平棱角
你不是这世界的人 没必要在乎真相
命运多舛 痴迷 淡然
挥别了青春 数不尽的车站
甘于平凡却不甘平凡的腐烂
你是阿刁 你是自由的鸟
灰色帽檐下 凹陷的脸颊
你很少说话 简单的回答
明天在哪里 谁会在意你
即使死在路上
命运多舛 痴迷 淡然
挥别了青春 数不尽的车站
甘于平凡却不甘平凡的腐烂
你是阿刁
阿刁 爱情是粒悲伤的种子
你是一棵树 你永远都不会枯
守得云开见月明