C# int to BCD encode(最简单的实现办法)BCD编码编程实现算法

这个函数是自己写的,不知道有误没有,网上找了很多但是都写得怪麻烦的。

希望对大家有所帮助

byteLength是返回字节的长度。

 
 
  private  static  int GetSum( int baseInt,  int[] sValue)
        {
             int count = sValue.Length;
             if (count ==  1return sValue[ 0];
             int r =  1;
             int b = sValue[ 0];
             for ( int i =  1; i < count; i++)
            {
                r *= baseInt;
            }
            count--;
             int[] ri =  new  int[sValue.Length -  1];
             for ( int j =  0; j < ri.Length; j++)
            {
                ri[j] = sValue[j +  1];
            }
             return b * r + GetSum(baseInt, ri);
        }

         public  static  byte[] BCDEncode( this  int intvalue,  int byteLength)
        {
             byte[] r =  new  byte[byteLength];
             char[] chars = intvalue.ToString().ToCharArray();
             int clengh = chars.Length;
             int[] ints =  new  int[clengh];
             for ( int j =  0; j < clengh; j++)
            {
                ints[j] = Convert.ToInt32(chars[j].ToString());
            }

             int rvalue = GetSum( 16, ints);

             byte[] sas = BitConverter.GetBytes(rvalue);
             byte[] ras =  new  byte[byteLength];
             for ( int k =  0; k < byteLength; k++)
            {
                ras[byteLength-k- 1] = sas[k];
            }
             return ras;
            
        }

转载于:https://www.cnblogs.com/soief/archive/2011/11/27/2265189.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值