网站首页 > 资源文章 正文
ps:这些都是本人自己原创总结的笔记欢迎大家一起学习。
这是底层重点,下面的各级规定必须背会
- 二进制的最高位是符号位:0表示正数,1表示负数
- 正数的原码,反码和补码都一样。
- 负数的反码=它的原码符号位不变,其他位取反(0->1,1->0)
- 负数的补码=它的反码+1,负数的反码=它的补码-1
- 0的反码,补码都是0
- java没有无符号数,换言之java中的数都是有符号的。
- 在计算机运行时都是以补码的方式运行的。
- 当我们看它的运行结果时,要看它的原码
四个位运算符
- 按位与&:两位全为1,结果为1,否则为0
- 按位或|:两位有一位为1,结果为1,否则为0
- 按位异或^:一个为0,一个为1,结果为1,否则为0
- 按位取反~:0->1,1->0
举例
2&3=?
2的补码:
0000 0000 0000 0000 0000 0000 0000 0010
3的补码:
0000 0000 0000 0000 0000 0000 0000 0011
2&3的补码:
0000 0000 0000 0000 0000 0000 0000 0010
2&3的原码:
0000 0000 0000 0000 0000 0000 0000 0010
~-2=?
-2的反码:
1111 1111 1111 1111 1111 1111 1111 1101
-2的补码:
1111 1111 1111 1111 1111 1111 1111 1110
取反:
0000 0000 0000 0000 0000 0000 0000 0001
原码:
0000 0000 0000 0000 0000 0000 0000 0001
~2=?
2的补码:
0000 0000 0000 0000 0000 0000 0000 0010
取反:
1111 1111 1111 1111 1111 1111 1111 1101
补码转反码:
1111 1111 1111 1111 1111 1111 1111 1100
反码再变回原码:
1000 0000 0000 0000 0000 0000 0000 0011
2|3=?
2的补码:
0000 0000 0000 0000 0000 0000 0000 0010
3的补码:
0000 0000 0000 0000 0000 0000 0000 0011
或运算:
0000 0000 0000 0000 0000 0000 0000 0011
补码变反码变原码:
0000 0000 0000 0000 0000 0000 0000 0011
2^3=?
2的补码:
0000 0000 0000 0000 0000 0000 0000 0010
3的补码:
0000 0000 0000 0000 0000 0000 0000 0011
异或运算:
0000 0000 0000 0000 0000 0000 0000 0001
位运算的妙用
可直接使用 (m&1)==1?奇数:偶数 获得结果*,如:
boolean a = (3&1)==1 //true
boolean b = (4&1)==1 //false
不用临时变量交换两个整数的值:
int a = 3, b = 4
a = a^b
b = a^b // b = 3
a = a^b // a = 4
原理:
异或0具有保持的特点,即1010^0000 = 1010;
异或1具有翻转的特点,即1010^1111 = 0101;
由此可推导:
b^(a^b) = a
a^(b^(a^b)) = b
三个位移运算符
- 算数右移>>:低位溢出。符号位不变,并用符号位补溢出的高位。
- 算数左移<<:符号位不变,低位左移补0
- 逻辑右移>>>:也叫无符号右移,低位溢出高位补0
int a=1>>2; //相当于1/2/2
int a=1<<2; //相当于1*2*2
猜你喜欢
- 2024-09-08 1.2 计算机内信息的表示与存储(计算机内部信息的表示及存储采用的是)
- 2024-09-08 C++手撕底层:位、字节、原码、反码、补码的深入理解
- 2024-09-08 算法水题练习(二)(算法题模板)
- 2024-09-08 二进制是怎么减法运算的?(二进制是怎么减法运算的原理)
- 2024-09-08 “原码、反码、补码”计算机如何更好的实现算法?
- 2024-09-08 PLC的加、减、乘、除指令有什么用?其实功能十分强大!
- 2024-09-08 【1682023】指令:NEG(088)—— 完成二进制求补的功能指令
- 2024-09-08 C语言-自运算、位运算、取反运算(c语言位运算的运算规则)
- 2024-09-08 软件设计(十三)-原码、反码、补码、移码
- 2024-09-08 原码、反码和补码:深度解析C语言中的二进制表示
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)