gpt4 book ai didi

java - 将字符串 Mac 地址转换为十六进制

转载 作者:行者123 更新时间:2023-12-01 16:33:03 31 4
gpt4 key购买 nike

我正在尝试将字符串 macaddress 转换为十六进制值。我有一个 C# 代码,它做同样的事情,但是当我使用 java 代码时,它给了我负值。正如 C# 代码返回有符号整数,但我如何在 Java 中执行相同的操作

以下是我的代码的一部分

Integer hex = Integer.parseInt(MacAddress.subString(0,2), 16 );
MacAddress[0] = hex.byteValue();

我在 c# 代码中得到类似 148 的内容,而 java 返回 -148 我该如何解决这个问题,谢谢

更新

我刚刚意识到我的c#代码将值214返回给mac地址的“D6”部分,而java代码返回-42,这很奇怪

最佳答案

String MacAddress="D6";
Integer hex = Integer.parseInt(MacAddress.substring(0,2), 16 );
byte byteArray=(byte) hex.intValue();
System.out.println(hex+"|"+hex.byteValue()+"|"+byteArray[0]+"|"+(int)(byteArray[0]&(0xff)));

byteValue() 将为您提供带符号格式的字节。您可以将其存储在字节数组中,无需担心,只需在使用之前将其转换为无符号值即可。

另请参阅 unsigned byte from signed byte

如果您不希望从有符号到无符号的转换,请将您的 MacAddress 设置为 char[]。char 默认情况下被视为无符号。

关于java - 将字符串 Mac 地址转换为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12527926/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com