安全的C#中将整数存入数组

1641阅读 0评论2011-11-04 zhenze12345
分类:嵌入式

这里所指的将整数存入数组在c++中使用指针是这样实现的
  1. char buff[SIZE] = {0};
  2. char *p = buff;
  3. *(int *)p = 256;
上篇blog中提到了ruby的实现方式
下面是安全的C#的实现方式(C#在不安全的情况下也可以使用指针实现):

  1.         private void PutIntIntoBuffer(int num, byte[] buffer, int beginLen)
  2.         {
  3.             buffer[beginLen] = (byte)num;
  4.             buffer[beginLen + 1] = (byte)(num >> 8);
  5.             buffer[beginLen + 2] = (byte)(num >> 16);
  6.             buffer[beginLen + 3] = (byte)(num >> 24);
  7.         }

  8.         private void PutShortIntoBuffer(short num, byte[] buffer, int beginLen)
  9.         {
  10.             buffer[beginLen] = (byte)num;
  11.             buffer[beginLen + 1] = (byte)(num >> 8);
  12.         }


  13.         private int GetIntFromBuffer(byte[] buffer, int beginLen)
  14.         {
  15.             return (int)buffer[beginLen]
  16.                 | (int)buffer[beginLen+1] << 8
  17.                 | (int)buffer[beginLen+2] << 16
  18.                 | (int)buffer[beginLen+3] << 24;
  19.         }

  20.         private short GetShortFromBuffer(byte[] buffer, int beginLen)
  21.         {
  22.             return (short)((int)buffer[beginLen]
  23.                 | (int)buffer[beginLen+1] << 8);
  24.         }

上一篇:ruby中将整数存入数组
下一篇:WaveInReset死锁的解决方法