测试关注点-数据精度丢失和CUP计算性能

本文探讨了数据精度丢失和CPU计算性能的问题,包括不同进制间的转换、小数精度丢失的原因,以及如何通过二进制和十进制转换理解数据处理过程。同时,文章通过具体示例解释了为何某些小数在二进制中表现为无限不循环,以及这如何影响CPU处理浮点数的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试关注点-数据精度丢失和CUP计算性能

数据的处理方式

cpu是直接处理的二进制数据,数据的处理方式是 先转换成二进制计算,完成后再转换为十进制。

进制转换

1)十进制: 0 1 2 3 4 5 6 7 8 9
2)二进制:0 1
3)十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F

如何转换成十进制:
十进制数45876=4*104 + 5*103+8*102+7*101+6*100
二进制数101101= 1*25 +0*24+123+1*22+0*21+1*20=46
十六进制数D4A2 =D*163+ 4*162+A*161+2*100=54434
二进制数101101.101 = 1*25 +0*24+1
23+1*22+0*21+1*20+1*2-1+0*2-2 + 1*2-3 = 46 + 0.5 +0.25 + 0.125 =46.625

十进制转换成二进制:
1)整数:除2取整倒过来
2)小数:乘2取整顺着来

a.写出整数139的二进制数?
	139/2    =   69 -------1
	69/2     =   34 -------1
	34/2     =   17 -------0
	17/2     =   8 --------1
	8/2      =   4 --------0
	4/2      =   2---------0
	2/2      =   1---------0
	1/2      =   0---------1
	**所以139的二进制数为10001011**
b.写出139.625的二进制数
	0.625 * 2 = 1.25     ---------------1
	0.25 * 2  = 0.5      ---------------0
	0.5 * 2   = 1        ---------------1
	**所以139.625得二进制数为10001011.101**

小数的精度丢失问题

// An highlighted block
package java_basic_for_Test;

public class DiginalType {
	
	public static void main(String[] args) {
		float flo = 12.543f;
		System.out.println(flo);
	}
}
//输出结果12.534
package java_basic_for_Test;

public class DiginalType {
	
	public static void main(String[] args) {
		float flo = 12.543f;
		System.out.println(flo*1.0);
	}
}
//输出结果为12.543000221252441
package java_basic_for_Test;

public class DiginalType {
	
	public static void main(String[] args) {
		float flo = 12.625f;
		System.out.println(flo*1.0);
	}
}
//输出结果为12.625

为什么12.543输出会是12.543000221252441的呢?
我们把12。534转换成二进制得到
12.534 = 1100.11010111000010.......
12.625 = 1100.101
我们会发现12.534小数部分的二进制时无线不循环的。
CPU处理浮点数的性能决定了运算的性能。

测试关注点

eg:WeChat红包的最大金额是200,我们可以试下199.9999999999999999这个数字的计算能力如何

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值