gpt4 book ai didi

java - 长mac地址返回字节数组

转载 作者:行者123 更新时间:2023-12-02 08:17:26 24 4
gpt4 key购买 nike

我有一个方法,可以从字符串中获取 MAC 地址并将其转换为字节数组。然后我有另一种方法获取该字节数组并将其转换为长整型。如下

final long address = ((long)addr[5] & 0xff) 
+ (((long)addr[4] & 0xff) << 8)
+ (((long)addr[3] & 0xff) << 16)
+ (((long)addr[2] & 0xff) << 24)
+ (((long)addr[1] & 0xff) << 32)
+ (((long)addr[0] & 0xff) << 40);

但是我不知道如何将这个 long 转换回字节数组进行存储。

我已经尝试过

/* long l = mac in long format address | mac addresses only take 6 bytes */
buffer[currentOffset++] = (byte)l;
buffer[currentOffset++] = (byte)(l >> 8);
buffer[currentOffset++] = (byte)(l >> 16);
buffer[currentOffset++] = (byte)(l >> 24);
buffer[currentOffset++] = (byte)(l >> 32);
buffer[currentOffset++] = (byte)(l >> 40);

但它无法正确转换回来。

最佳答案

您正在按相反顺序分配。

buffer[currentOffset++] = (byte) (l >> 40);
buffer[currentOffset++] = (byte) (l >> 32);
buffer[currentOffset++] = (byte) (l >> 24);
buffer[currentOffset++] = (byte) (l >> 16);
buffer[currentOffset++] = (byte) (l >> 8);
buffer[currentOffset++] = (byte) l;

关于java - 长mac地址返回字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6080690/

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