做个ascii码转16进制的app?

移动开发 简书

前言

这种题目的特点就是看起来比较简单, 但是处理的时候却没那么简单.这次呢, 我打算用c进行转换, 用android来处理界面, 让这个c语言入门的题目有个可视化的显示.好啦, 开工吧!

关于如何使用c语言, 可以查看我之前的文章 AndroidStudio使用.so你该会这两步

布置下界面, 代码我就不贴了, 很简单了.

布置下界面

贴一下转换的核心代码, 源码见最后.

//4.开始转换
unsigned char cH, cL;
int i;
for (i = 0; i > 4;
    cL = cStr[i] & 0x0f;

    //4.2 转换为16进制
    if (cH > 9){
        cH = cH + 'A' - 10;
    }
    else {
        cH = cH | 0x30;
    }

    if (cL > 9){
        cL = cL + 'A' - 10;
    }
    else {
        cL = cL | 0x30;
    }

    //4.3 存储高低位到缓存串
    cBuf[i * 2] = cH;
    cBuf[i * 2 + 1] = cL;
}

然后在点击事件中处理转换后的串

public void StrToHex(View v) {
    //1.获取控件
    EditText et_ascii_str = (EditText) findViewById(R.id.et_ascii_str);
    TextView tv_hex_str = (TextView) findViewById(R.id.tv_hex_str);
    
    //2.获取输入串并转换
    String input_str = et_ascii_str.getText().toString();
    String hexStr = new SToH().StrToHexC(input_str);
    
    //3.对返回串处理, 帮助查看
    char[] hexCharArray = hexStr.toCharArray();
    String hexDisplayStr = "";

    for (int i = 0; i  0 && i % 8 != 0) {
            hexDisplayStr += "-";
        }
        if (i % 8 == 0 && i > 0) {
            hexDisplayStr += " ";
        }
        hexDisplayStr += hexCharArray[i];
    }
    
    //4.显示处理后的结果
    tv_hex_str.setText(hexDisplayStr);
}

行了, 看一下实际的效果

实际演示

源码在这里

简书稿源:简书 (源链) | 关于 | 阅读提示

本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 移动开发 » 做个ascii码转16进制的app?

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录