十进制到字符编码

时间:2014-04-28 16:16:02

标签: android math

我正在尝试将小数转换为字符。 我的字母表已被转换为charArray

String alphabet = "abcdefghijklmnopqrstuvwxyz"; 
alpha = alphabet.toCharArray();

我使用的是二进制数,所以值只有0到255,但是当我尝试执行此代码时,它不起作用。

private int toChar(int encryptCode){

    int base = 26;
    int characterSteps = (encryptCode/255)*base;

    char character = alpha[characterSteps];

    return character;

假设我有小数78,78 / 255 * 26会给出7.95(归零到8) 它应该查找alpha数组并给出' h'。但每个角色都会给出一个'意思是(encryptCode / 255)* base 没有按预期工作。

2 个答案:

答案 0 :(得分:1)

凯文在评论中是对的。尝试重新安排你的公式:

int characterSteps = (encryptCode*base)/255;

答案 1 :(得分:0)

变化

int characterSteps = (encryptCode/255)*base;

int characterSteps = (int) (encryptCode/255.0)*base;

你完成了! 255.0将导致在encryptCode和base上扩展,然后转换为int。

  

让我说我有小数78,78 / 255 * 26会给7.95(转入8轮)

将float / double转换为int将导致截断而不是舍入。 7.95将被截断为7而不是8.要舍入整数,请使用:

double x = (encryptCode/255.0)*base;
int characterSteps = (int) Math.round(x);

快乐的编码! :)