java mac 转换 整形,Mac地址转换成long长整型 2

数据之间的转换可以使用   System.Convert

Mac地址转换成long长整型

///

/// 解析长整形的数据使其转换为macID

///

/// 长整形的数据

/// macID字符串

public static string Int64ToMacID(long valuetolong)

{

//解析长整形的数据使其转换为MAC;

string valuetostr = valuetolong.ToString("X2");

valuetostr = valuetostr.PadLeft(12, '0');

List listArr = new List();

for (var i = 0; i <= 11; i++)

{

listArr.Add(valuetostr[i].ToString());

if (i < 11 && i % 2 == 1)

{

listArr.Add("-");

}

}

valuetostr = string.Join("", listArr.ToArray());

return valuetostr;

}

///

/// 将MAC转为长整形

///

/// macID

/// 长整形

public static long MacIDToInt64(string macID)

{

long valuetolong = 0;

string v = null;

//将MAC转为长整形:

//测试:string vv = "00-26-2D-F2-5C-28".Replace("-", "");

//string v = macID.Replace("-", "");

if (macID.Contains("-"))

{

v = macID.Replace("-", "");

}

if (long.TryParse(v, System.Globalization.NumberStyles.HexNumber, null, out long macIDToInt64Result))

{

valuetolong = macIDToInt64Result;

}

return valuetolong;

}

private static String keys = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

private static int exponent = keys.Length;

public static string Long2MACID(long value)

{

string result = string.Empty;

do

{

long index = value % exponent;

result = keys[(int)index] + result;

value = (value - index) / exponent;

}

while (value > 0);

result = result.PadLeft(12, '0');

List listArr = new List();

for (var i = 0; i <= 11; i++)

{

listArr.Add(result[i].ToString());

if (i < 11 && i % 2 == 1)

{

listArr.Add("-");

}

}

return string.Join("", listArr.ToArray());

}

public static long MACID2Long(string value)

{

value = value.Replace("-", "");

long result = 0;

for (int i = 0; i < value.Length; i++)

{

int x = value.Length - i - 1;

result += keys.IndexOf(value[i]) * Pow(exponent, x);

}

return result;

}

///

/// 一个数据的N次方

///

///

///

private static long Pow(long baseNo, long x)

{

long value = 1;

while (x > 0)

{

value = value * baseNo;

x--;

}

return value;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值