日期:2014-05-20 浏览次数:20816 次
public class EncodingTest
{
public static void main(String[] args)
{
int original = 125;
int encrypted = Encoder.encode(original);
System.out.println(original + ":" + Encoder.decode(encrypted));
}
}
class Encoder
{
public static int encode(int original)
{
/*
* 结果进行类型转换的时候,相当于舍去小数部分0.64159(忽略精度损失),
* 其中,0.5是5除以2的时候贡献出来的,剩下是3.14159贡献出来的
*/
return (int)((original * 10 + 5) / 2 + 3.14159);
}
public static int decode(int encrypted)
{
/*
* 加上0.0001是考虑到有可能发生精度损失
*/
return (int)(((encrypted + 0.64159 -3.14159 + 0.0001) * 2 - 5) / 10);
}
}