java中如何声明一个十六进制的字符串,或者说,怎么发送一个十六进制数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何声明一个十六进制的字符串,或者说,怎么发送一个十六进制数据?相关的知识,希望对你有一定的参考价值。

例如定义一个字符串“”3F 66 85 11 1E"通过串口发送时,接收端收到的十六进制就是此字符串

参考技术A static String
toHexString(int i)

以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
可以用这个试试,具体不知道你是什么意思。
参考技术B 使用该方法 Integer.toHexString()
将所需要的数字转换成16进制字符串,再将这些字符串拼接起来即可追问

你说的是十进制转16进制,字母又该怎么转,能不能说得清楚点,还有3F与66之间的空格怎么加进去?或者来个例子。

追答

不太明白你的意思,字母该怎么转,如果是字母的话,那本身肯定就是16进制了,你不可能自己创建一个字符串,里面有除了ABCDEF之外的字母吧。
空格的话,拼接字符串的时候就直接加空格就行了

追问

我的意思是我要给下位机发送16进制命令3F 66 85 11 1E(注意空格必须保留,否则出错),在java中怎么实现?

追答

String order="3F 66 85 11 1E";
直接这样就可以了,发送的时候应该要转成char[],调用toCharArray()函数。

参考技术C 0x 加在前面 就代表16进制了

java中如何将字符串转换为二进制数

我是想把一个字符串转换为二进制数,请问怎么弄呢?就你现在说的这个结果---转换后的数据是字符串的形式,那么如何在将这个数据用字节流的方式读取和存储呢?

java.lang.Integer这个API包中有进制转换的函数
public static String toBinaryString(int i)
public static String toHexString(int i)
public static String toOctalString(int i)
这3个函数都可以将十进制的整数转换成二、一六、八进制数
不过转换后的结果都是字符串的形式
参考技术A 方法一:开始,运行,输入cmd,再输入“systemInfo”,拉到上面看“系统类型”,X86的是32位机,64位的是X64(不过,系统是64位的,此处才显示64位)。如果你的系统是64位的,会在“OS?名称:?MicrosoftXP?Professional”一行后明确标示出“x64?Edition”,否则你的系统就是32位的。?
方法二:在开始>运行中输入“winver”,如果你的系统是64位的,同样会明确标示出“x64?Edition”。?
方法三:查看“控制面板”中的“系统属性”?
单击“开始”,然后单击“运行”。键入?sysdm.cpl,然后单击“确定”。单击“常规”选项卡。操作系统显示如下:?
对于?64?位版本的操作系统:“系统”下将显示?Windows?XP?Professional?x64?Edition?版本?<?Year>。?
对于?32?位版本的操作系统:“系统”下将显示?Windows?XP?Professional?版本?<?Year>。?注意<Year>?是一个表示年份的占位符。?方法?四:查看“系统信息”窗口?
单击“开始”,然后单击“运行”。键入?winmsd.exe,然后单击“确定”。?
当导航窗格中已选择“系统摘要”,找到“详细信息”窗格中“项目”下的“处理器”,然后记下该值。?
如果“处理器”对应的值以“x86”开头,表明该计算机运行的是?32?位版的?Windows?操作系统
如果“处理器”对应的值以“ia64”或“AMD64”开头,表明该计算机运行的是?64?位版的?Windows?操作系统?
右键打开我的电脑属性,没有“物理地址扩展”的是32位,有“物理地址扩展”的是64位如果这个方法无效,请尝试其他方法。
参考技术B public class Test01
public static void main(String[] args)

//比如我现在要转这个字符串
String str = "Hello World";

//先把他变为字符数组
char[] chs = str.toCharArray();

//然后通过integer中的toBinaryString方法来一个一个转

for (int i = 0; i < chs.length; i++)
System.out.print(Integer.toBinaryString(chs[i]));





1001000110010111011001101100110111110000010101111101111111001011011001100100
参考技术C java中字符串有提供方法获取字符串的byte数组

方法名getBytes,可以参考api
参考技术D "xxxxxxx".getBytes();

以上是关于java中如何声明一个十六进制的字符串,或者说,怎么发送一个十六进制数据?的主要内容,如果未能解决你的问题,请参考以下文章

java中关于FileReader的read方法!!

java中如何将字符串转换为二进制数

java中,如何将double类型数据转换为16进制字符串或者是16进制字节数组

Java中Object[] options="二进制","四进制","八进制";中为啥可以用Object声明定义一个字符串

android edittext怎撤回和恢复

java中如何把输入的数据以json格式保存在文本里面