时间:2020-11-11 11:23:02 | 栏目:JAVA代码 | 点击:次
用UE的人都会觉得16进制显示文件灰常方便。为啥捏?当你要对文件加密、转码、编码的时候,蹦出一堆01二进制看着都会头大。毕竟十六进制显示文件简短方便。至少中考高考时涂过卡吧,1+2+4+8能算明白是几吧。当然,那些中考和高考都能把1248码都涂错的童鞋们,一看就知道它们果断与程序猿这个“神剩”的职业无缘哈……
因为之前试着参加过科普创新大赛,当时做的咚咚是把文件以字节流读入,并转化成二进制、四进制、十六进制字符串,然后刷的一下子输出到控制台。再根据每个位的值,分别以2色、4色、16色的矩阵显示。写这个的目的是为了用摄像头识别,然后再还原成字节流写到文件里。这个程序设计是两个蛋疼的事实杂交出的产物――1.要求不通过任何介质和USB设备传输文件;2.zxing和QRCode有时会找不到二维码(QRCode更容易出错)。大家可以试试这个题目,用摄像头或者扬声器发送接收文件,看谁传得快,题目确实蛮有意思的呢。
当然,最重要的部分是进制转化了,读入文件的字节流byte 8位,用两个16进制显示。因为可能会遇到byte转int后为补码的情况,所以最好先统一成正数,方法其实很简单啦,一个与运算就搞定!
弄出这个,转成N进制字符串就不是啥难事了。仔细想想,是不是有个熟悉而又陌生的类直接就带这个功能呢?没错,就是用Integer来实现!但是先别急,用它之前,还得对这个int搞点小动作。
你可以试试这个看看所有byte变16进制后的输出
所以,最后把byte转化成二位16进制的代码是
接下来就是用矩阵晶格一帧帧显示文件,用摄像头拍下识别颜色,再转换会字符串,并反馈个颜色让对方知道识别完了好换下一张图……如此循环,直到矩阵晶格显示文件已经结束。这部分代码我就不贴出来了,整个过程可以靠丰富的想象力YY出来吧……
然后是字符串转回字节流,这就是简单活了