利用内存(Api)转换数据

meiyoujiji 2007-12-23 10:09:24
利用Api转换 int,long,uint这样的类型数据需要怎么做啊?
...全文
123 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
三省Ta叔 2007-12-23
  • 打赏
  • 举报
回复
^_^ DING
meiyoujiji 2007-12-23
  • 打赏
  • 举报
回复
去这个地址接分吧,加不了分。
谢谢了

http://topic.csdn.net/u/20071223/10/26c6b903-55df-4755-8f2c-8d8df241879b.html
meiyoujiji 2007-12-23
  • 打赏
  • 举报
回复
对,就是把这样的转换为字节的形式。忘记了说了,呵呵
三省Ta叔 2007-12-23
  • 打赏
  • 举报
回复
最好是第一种,快些
三省Ta叔 2007-12-23
  • 打赏
  • 举报
回复
public static int Bytes2int(byte[] b)
{
int res = 0;
for (int i = 3; i >= 0; i--)
{
res <<= 8;
res |= (int)b[i];
}
return res;
}
/// <summary>
/// 整数转换为4字节
/// </summary>
/// <param name="num">整数</param>
/// <returns>Byte[]</returns>
public static byte[] Int2bytes(int num)
{
byte[] b = new byte[4];
for (int i = 0; i < 4; i++)
{
b[i] = (byte)(num >> i * 8);
}
return b;
}
这个是位移转换的形式
三省Ta叔 2007-12-23
  • 打赏
  • 举报
回复
LZ是指这样么?

public unsafe static void SetInt(byte[] buffer, int start, ref int value) {
if (start + 4 > buffer.Length) throw new Exception("目标缓冲区长度不够");
IntPtr dp;
IntPtr sp;
fixed (byte* ds = &buffer[start]) {
fixed (int* sr = &value) {
dp = (IntPtr)ds;
sp = (IntPtr)sr;
CopyMemory(sp, dp, 4);
}
}
}
需要添加一些引用,而且需要设置项目属性,unsafe
meiyoujiji 2007-12-23
  • 打赏
  • 举报
回复
解决了加分。。。
谢谢啦

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧