Console.WriteLine("5D096315");
int data1111 = int.Parse("5D096315", NumberStyles.HexNumber);
int data1112 = IPAddress.NetworkToHostOrder(data1111);
string strData = data1112.ToString("X");
Console.WriteLine(strData);
int data1111 = int.Parse("5D096315", NumberStyles.HexNumber);
int data1112 = IPAddress.NetworkToHostOrder(data1111);
string strData = data1112.ToString("X");
Console.WriteLine(strData);
using System.Threading;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
using System.Globalization;
using System.Net;
byte[] arrs = BitConverter.GetBytes(i);
Array.Reverse(arrs);
i = BitConverter.ToUInt32(arrs, 0);
Console.WriteLine(i.ToString("X2"));
uint i = uint.Parse("5D096315", System.Globalization.NumberStyles.HexNumber); //0x5D096315;
byte[] arrs = BitConverter.GetBytes(i);
Array.Reverse(arrs);
i = BitConverter.ToUInt32(arrs, 0);
Console.WriteLine(i.ToString("X2"));
var tmp=BitConverter.GetBytes(long.Parse("5D096315",System.Globalization.NumberStyles.HexNumber));
Array.Reverse(tmp);
return BitConverter.ToInt64(tmp,0).ToString("X8");
int res = 0;
res |= (src & 0x000000ff) << 24;
res |= (src & 0x0000ff00) << 8;
res |= (src & 0x00ff0000) >> 8;
res |= (int)((src & 0xff000000) >> 24);还有二进制如何用程序实现?
转换成二进制后有个位移操作能不能用到这里?
这两个问题不是很清楚楼主想问什么。 int在内存中就是以二进制储存的,计算机中的所有数据都是以二进制储存的,移位操作可以用于这些类型。 但是编译器做了一些事情,让我们对非数值类型不能做移位操作。
是
DD096315
10方法就会出错。
int 的第一位是符号。如果是1,就会按负数方式存储,要用uint
80xxxxxx--ffxxxxxx
xxxxxx80--xxxxxxff前者超过了int的最大上限,后者经过转化后超过了int的最大上限。
在这里一鼓作气把它改正确:
uint src = uint.Parse("5D096315", NumberStyles.HexNumber);
uint res = 0;
res |= (src & 0x000000ff) << 24;
res |= (src & 0x0000ff00) << 8;
res |= (src & 0x00ff0000) >> 8;
res |= (src & 0xff000000) >> 24;