日期:2014-05-20 浏览次数:20585 次
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); } }