Exemple #1
0
        public static int GetCardNo(byte[] cardBuffer)
        {
            BitArray array1 = new BitArray(new byte[] { cardBuffer[0] });
            BitArray array2 = new BitArray(new byte[] { cardBuffer[1] });
            BitArray array3 = new BitArray(new byte[] { cardBuffer[2] });
            BitArray array4 = new BitArray(new byte[] { cardBuffer[3] });
            BitArray array5 = new BitArray(new byte[] { cardBuffer[4] });

            array1 = BitArrayRevserve(array1);
            array2 = BitArrayRevserve(array2);
            array3 = BitArrayRevserve(array3);
            array4 = BitArrayRevserve(array4);
            array5 = BitArrayRevserve(array5);

            var nb1 = array1.BitArrayToByte();
            var nb2 = array2.BitArrayToByte();
            var nb3 = array3.BitArrayToByte();
            var nb4 = array4.BitArrayToByte();
            var nb5 = array5.BitArrayToByte();

            BitArray cardTotal = new BitArray(new byte[] { nb1, nb2, nb3, nb4, nb5 });
            BitArray card = new BitArray(20);
            var j = 0;
            for (var i = 15; i < cardTotal.Length; i++)
            {
                card[j] = cardTotal[i];
                Console.Write((card[j] ? "1" : "0"));
                j++;

                if (j == 20)
                    break;
            }

            card = BitArrayRevserve(card);
            var cardNo = card.BitArrayToInt();

            return cardNo;
        }