十六进制,字符,数字之间的Java转换

时间:2014-10-30 18:30:17

标签: java hex ascii converter

首先抱歉我的英文! :)

我正在尝试将包含字符和数字的ascii文件转换为二进制文件!

问题是:如果我在我的ascii文件中有charactere" B"在十六进制中它将是42,如果我在我的ascii文件中,十六进制中的数字66也将是42 !!

那怎么知道十六进制中的值42之间的区别是指它是指字母B还是数字66 ???

PS:我在JAVA工作。

任何帮助都将非常感谢! 很多

2 个答案:

答案 0 :(得分:1)

  

我正在尝试将包含字符和数字的ascii文件转换为二进制文件!

没有二进制文件这样的东西。当人们说"二进制文件"他们真正在谈论的是任何文件,你不想在某些文本编辑器中打开它。他们正在谈论任何文件格式,它不仅仅是自由格式文本的表示。关键词是"格式"。

文件格式是文件可以表示哪种信息(例如,图片,声音,街道地址......)以及如何表示(即程序如何读取文件和解码信息)的规范)。

" B"是什么意思出现在你的ASCII文件中?什么" 66"意思?如何将这些含义编码在“二进制”中?您要创建的文件?什么会读到这个'二进制'文件?

如果你无法回答这些问题,那么你甚至还不能解决问题。

答案 1 :(得分:0)

正如您所说,它是一个ASCII文件。 ASCII映射二进制"事物"一个角色。

如前所述,B的HEX ASCII代码为42。

6的HEX ASCII代码是36.因此66将导致3636

String B66BB将产生4236364242.每个两(!)个十六进制数字的块代表一个(!)字符。

请参阅此翻译表:http://www.asciitable.com/index/asciifull.gif

编辑:ASCII不知道小数。将66(dec)转换为42(十六进制)是错误的。在ASCII术语中,66是字符6的两倍而不是数字。