原码:就是我们自己看的,以及机器输出给我们看的

补码:机器永远是以补码的形式将数据保存在计算机中

正数:

    原码=反码=补码

负数:

    反码:原码的符号位不变,其他位取反 ,1变0   0变1

    补码:机器存储数据的方式 等于 反码+1

例子:

    

96(默认int数据类型):
原码:00000000 00000000 00000000 01100000 共32位
补码:00000000 00000000 00000000 01100000

-96:
原码:10000000 00000000 00000000 01100000 共32位
反码:11111111 11111111 11111111 10011111
补码:11111111 11111111 11111111 10100000

举个例子会更容易对他们加深理解

(-26) ^ 38为多少(^是异或)

1.我们知道我们做运算时得把其数字变作补码

 则先把(-26)和38都变为补码

-26:

原码:10000000 00000000 00000000 00011010

反码:11111111 11111111 11111111 11100101

补码:11111111 11111111 11111111 11100110

38:

原码:00000000 00000000 00000000 00100110
补码: 正数的补码=原码
   00000000 00000000 00000000 00100110

2.我们得把两个数的补码进行异或运算(位相同为0,不同为1)

      11111111 11111111 11111111 11100110
      00000000 00000000 00000000 00100110 
      ----------------------------------------------------------
补码:    11111111 11111111 11111111 11000000

3.计算机要让我们看到,得变回反码后变为原码

反码: 补码-1  
    11111111 11111111 11111111 10111111
原码: 10000000 00000000 00000000 01000000    = -64

最后我们算出(-26) ^ 38结果为-64

我们用电脑验证一下

耶,结果和算的一样

通过这个例子,把负数和正数的原码反码补码关系可以弄清楚,还顺带进行了异或的操作,希望大家能理解。

最新文章

  1. android studio 不能创建或者安装模拟器
  2. Android和iOS常用命令学习(真机)
  3. 安装数据库Mocrosoft.NET Application Security警告
  4. vue生命周期
  5. (转)清理AIX的/var文件系统大小
  6. Linux VFS中write系统调用实现原理【转】
  7. VS2010中“工具>选项中的VC++目录编辑功能已被否决”解决方法
  8. hdwik中view模块的应用
  9. xlistview的(java)
  10. system函数
  11. C# 之 Stream 和 byte[] 的相关转换
  12. 【转】六年软件测试感悟-从博彦到VMware
  13. hadoop2.2编程:mapreduce编程之二次排序
  14. iOS学习之数据解析
  15. 【第一篇章-android平台buffer播放探索】native media
  16. ubuntu12.04 安装 opencv 2.4.8(非源代码编译)
  17. iOS 上传文件
  18. JavaBean,List,Map,json格式之间转化方式
  19. tableview 选中一行后,不显示选中颜色
  20. SVM参数解析

热门文章

  1. MYSQL 之 JDBC(九):增删改查(七)DAO的补充和重构
  2. 数据可视化之PowerQuery篇(二)这个方法帮你快速计算列
  3. Python之爬虫(十七) Scrapy框架中Spiders用法
  4. 前端06 /JavaScript之BOM、DOM
  5. bzoj3526[Poi2014]Card*
  6. 量子点/钙钛矿 LED的研究概述
  7. P5836 [USACO19DEC]Milk Visits S 从并查集到LCA(最近公共祖先) Tarjan算法 (初级)
  8. 牛客练习赛 66B题解
  9. Maven配置文件中的版本使用-SNAPSHOT
  10. PyQt5布局管理器