关于课上实验中对小数的处理中出现的问题涉及到原码,反码,补码的问题,所以在网上进行了一下搜索。
在原码,反码,补码中的解释可得知,无论是哪一种码,能够表示的数的范围是-2^(位数-1)+1至2^(位数-1)-1;

原码:二进制的在最高位数若为1, 则表示这个数为正数,最高位数为0,表示负数,其值大小就是最高位数除外的二进制转换成10进制的大小,最高位数表示符号;

反码:二进制的在最高位数若为1, 则表示这个数为正数,最高位数为0,表示负数,正数的值就是最高位数除外的二进制转换成10进制的大小,负数的值是正数按位取反的值。

补码:二进制的在最高位数若为1, 则表示这个数为正数,最高位数为0,表示负数,正数的值就是最高位数除外的二进制转换成10进制的大小,负数的值是正数按位取反的值在加上1所得的值。

假如有一计算机,是4位,那对这4位进行计算。通过了解,可以取-7至7的值。
假如有两个数5,-1,计算他们的加法;

原码:
5/2=2...1;
2/2=1...0;
1/2=0...1;
即5用二进制表示0101;
-1用二进制表示1001;
原码5+(-1)则表示 1110;
表示-6;
所以原码不能用来计算

反码:
5用二进制表示0101;
-1用二进制表示1110;
两数相加,0011(位数超过4的部分舍去);
表示3;
反码同样不能用来计算。

补码:
5用二进制表示0101;
-1用二进制表示1111;
两数相加,用二进制表示:0100;
表示4;
此时表达正确,故计算机是用补码表示加减。

在程序中测试的代码如下:

package wei;

public class Wei {

    public static int getString(String a)
{
int a1=0;
for(int i=0;i<4;i++)
{
if(a.charAt(3-i)=='1')
a1+=(1<<(i));
}
// if(a.charAt(0)=='1')
// a1=-a1;
return a1; }
public static int add(int a,int b)
{
int c=0;
c+=(((a+b)&8)>>3!=1)?((a+b)&7):-((a+b)&7);
return c;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
String a=new String("0101");
String b=new String("1001");
System.out.println("原码表示5+(-1)="+add(getString(a),getString(b)));
b="1110";
System.out.println("反码码表示5+(-1)="+add(getString(a),getString(b)));
b="1111";
System.out.println("补码码表示5+(-1)="+add(getString(a),getString(b)));
} }

实验截图如下:

最新文章

  1. 微信小程序wafer
  2. 本人第一个开源代码,NETSpider 网络蜘蛛采集工具
  3. 六间房PK同时观看两方视频(绕过VIP限制)+直播状态批量监测
  4. CSS深入理解之line-height
  5. svn merge部分的详细说明
  6. ToString函数用法
  7. ASP.NET MVC 4.0 学习2-留言板實現
  8. CodeForces463C Gargari and Bishops(贪心)
  9. erlang学习笔记(1)
  10. java排序方法中的选择排序方法
  11. JAVA-实例方法被覆盖,静态方法被隐藏Explain
  12. iOS StoreKit
  13. vue单页页面开发教程及注意事项
  14. ADT打开layout目录的xml报错java.lang.NullPointerException
  15. gulp自动化构建工具的使用
  16. MyBatis-Plus工具快速入门
  17. 【数据库摘要】10_Sql_Create_Index
  18. unity3d-解密加密数据
  19. sublime text3 setting-user
  20. mongodb原生node驱动

热门文章

  1. echo - 显示一行文本
  2. df - 报告文件系统磁盘空间的使用情况
  3. java 定时任务-servlet
  4. Global Round 2
  5. mysql 删除恢复
  6. KNN算法原理及实现
  7. JS中的方法运用笔记
  8. POJ 2631 Roads in the North (求树的直径)
  9. 【转】Quartz.NET
  10. 比较spring cloud和dubbo,各自的优缺点是什么