实践题目
编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能
提交测试代码和运行结果截图,加上学号水印,提交码云代码链接。
代码链接
实践截图
代码阐述
这次的代码主要需要解决以下四方面的问题
【1】将文件导入与关闭
【2】输出七位行号(最右边那个数为0)
【3】按每行16个的方式输出其本身
【4】按每行16个的方式输出对应的ASCII码
还有一些细节问题容易出错
- 计数变量需要放对位置(这个导致我曾一直只输出同一行字符,查了一下录入的字符串是将信息读取完毕的了,所以发现是计数变量放错了)
- 做行数方法时,当要输出7位数,而其实行号不满七位需要前面补零。同时,在这个小程序中最后一位是0,综合以上原因,我选择用整型数组填充。用中间数组存放转换过的一个整型行数,在把中间数组赋给最终数组。在这些转换的过程中,用于计数和指示位置的变量尤其容易出错,报错一般也是由于什么数组越界。
- 输出行号时只输出偶数行号,可以通过判定奇偶是否输出,也可以通过改变调用输出方法的位置,我最后选择了第二种。
- 十进制数转十六进制可以这样
char a = 'a';
int c = a;
System.out.printf(Integer.toHexString(c));