计算机二进制
来源:互联网 发布:雾社事件 知乎 编辑:程序博客网 时间:2024/05/21 14:59
计算机中的二进制是逢2进1的 0、1是基本的运算
数字在计算机中都是以二进制形式存储的,计算机在进行计算时是以二进制补码形式进行的。
对于正数而言原码、反码、补码一致
对于有符号的数而言: java语言中都是有符号数,没有无符号数java 不像c c++一样拥有无符号数
二进制的最高为是符号位: 0表示正数,1表示负数
正数的原码、反码、补码都一样
负数的反码=它的原码符号位不变,其他位取反(0---->1, 1----->0)
负数的补码=它的反码+1
0的反码,补码都是0
计算机在运算是时都是以补码的方式来运算的。
负数的补码转回原码可以是 补码------>反码, 即补码减去1, 再反码--->原码 ,即符号位不变其余取反
在计算机运算是 与或非,异或,左移 右移都是对数的补码进行操作的
取反,与,或,异或,操作时连符号位一起运算
算术右移: 符号位不变,低位溢出, 并用符号位补溢出的高位
算术左移: 符号位不变,低位补0
在计算机运算是 与或非,异或,左移 右移都是对数的补码进行操作的操作的结果也是补码形式的
如果计算的补码形式为正数,由于正数补码原码一样结果即为最终结果如果补码的计算结果为负数
则要将负数的补码形式转回原码才知道最终的结果
计算机中的运算举例:计算机计算 1-2=-1是如何算出来的??
计算机中运算都是以补码形式进行的!!1-2=1+(-2)=-1
1是正数 1的补码为 00000000 00000000 00000000 00000001
-2的原码为 10000000 00000000 00000000 00000010
-2是负数要先转为反码再转补码 -2的反码为 11111111 11111111 11111111 11111101
负数的补码反码加1 -2的补码为 11111111 11111111 11111111 11111110
1的补码为 00000000 00000000 00000000 00000001
-2的补码为 11111111 11111111 11111111 11111110
1+(-2)的补码结果为11111111 11111111 11111111 11111111
由于计算的补码结果最高位为负数,所以要进行补码到原码的转换
1+(-2)的补码结果为11111111 11111111 11111111 11111111
负数补码-à反码即补码减去1 反码为11111111 11111111 11111111 11111110
反码-à原码符号位不变其余取反 原码为10000000 00000000 00000000 00000001
最后计算出1-2的结果为-1;
计算 ~2=3 如何计算?
2的补码为00000000 00000000 00000000 00000010 (与或非操作时符号位都要一起计算)
取反为 11111111 11111111 11111111 11111101 (这结果为负数需要将补码转回原码)
反码为 11111111 11111111 11111111 11111100
原码为 10000000 00000000 00000000 00000011
最终结果:为-3
计算~-5=4如何计算??
-5的原码10000000 00000000 00000000 00000101
-5的反码11111111 11111111 11111111 11111010
-5的补码11111111 11111111 11111111 11111011
-5的取反00000000 00000000 00000000 00000100
最后的结果为正数,即补码原码一样所以结果为3
- 计算机二进制
- 计算机二进制
- 【二进制】计算机二进制补码
- 二进制和计算机
- 计算机中的二进制
- 计算机为什么使用二进制?
- 计算机与二进制
- 关于计算机二进制补码
- 计算机 十进制 二进制 关系
- 计算机解析二进制机制
- 什么是计算机二进制
- 计算机为什么采用二进制
- 计算机如何识别二进制
- 计算机中的二进制
- 计算机的二进制规则
- 二进制与计算机
- 浅谈计算机内部的二进制
- 【转】关于计算机二进制补码
- dual在oracle中是什么
- Interfacing with Pixhawk using the NSH
- Java对象的序列化与反序列化
- Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse
- 面向对象设计的七大原则
- 计算机二进制
- CSDN博客积分规则和获取积分方法
- 解析sql语句中left_join、inner_join中的on与where的区别
- 详解PHP spl_autoload_register()函数
- Spring Task
- Android Studio运行项目报错:java.lang.UnsatisfiedLinkError——.so文件问题
- Hibernate--- list和iterator方法的区别
- TCPIP三次握手与四次挥手
- Python-----生成器:generator