单位要求将C++的代码用C#事先出来,可是我才疏学浅,所以来求教大家
const unsigned char *BinString
unsigned char *Buffer
unsigned char tmp,tmp2;
  BinString += 2;  
 for(int i = 0,j = 0 ; i < 2 ; i+= 2,j++ )
 {
  tmp = BinString[i]>>4; /* x/16  */  //tmp=byte
  tmp2 = BinString[i] - (tmp<<4); /* x%16 */
  if( tmp == 4 || tmp == 6 ) /*'A' or 'a'*/
  {
   tmp2 += 9;
  }  Buffer[j] = tmp2*16;---------------------------------------------
BinString += 2;  
BinString[i]>>4
tmp2 += 9;
这些对于我来说都是难题啊,哪位大神帮帮忙啊 

解决方案 »

  1.   

    这个符号>> c#可以实现 不用重写
    using System;
    class MainClass
    {
        static void Main() 
        {
            int i = -1000;
            Console.WriteLine(i >> 3);
        }
    }
      

  2.   

    什么意思?
    把BinString[i]转化为byte型然后 >>?
      

  3.   

    BinString[i]>>4
    这个是移位吧?C++忘得差不多了
      

  4.   

    C#也有。实在不放心可以用unsafe编程
      

  5.   

    += -= *= /= >> <<
    这些基本的运算符C#都支持,查一下MSDN里的C#运算符那个章节就知道了.
    要想用指针的话在C#里需要使用unsafe关键字.
      

  6.   

    C++中的>>有好几种用法,
    cin>>a;
    a>>2;
    得说清楚吧。
      

  7.   

    BinString += 2;  
    那这个是什么意思呢?char型还能+2??
      

  8.   

    Buffer[j] = tmp2*16;是什么意思呢?还有tmp2 += 9;