前言
这种题目的特点就是看起来比较简单, 但是处理的时候却没那么简单.这次呢, 我打算用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); }
行了, 看一下实际的效果
实际演示