ASCII编码->7Bit编码

转换说明:

代码:

        private byte[] ASCII_2_7BIT(byte[] aryBytes)
        {
            int step = 0; //    移动字节数
            int byTemp = 0x7F;

            for (int i = 0; i < aryBytes.Length; i++)
            {
                aryBytes[i] = (byte)(aryBytes[i] & byTemp); //   每个字节最高位清0
            }
            //  拼7bit
            for (int i = 0; i < aryBytes.Length - 1; i++)
            {
                step = i % 8 + 1;

                byTemp = aryBytes[i + 1] & HexValue(step);
                aryBytes[i + 1] = (byte)(aryBytes[i + 1] >> step);
                byTemp = byTemp << (8 - step);
                aryBytes[i] = (byte)(aryBytes[i] + byTemp);

                if (step > 6) //    移动7个字节的后一个字节不再处理。
                    i++;
            }

            //  取出有效字节
            byte[] btAim = new byte[aryBytes.Length-aryBytes.Length / 8];
            for (int i = 0,j=0; i < aryBytes.Length; i++)
            {
                if ((i+1) % 8 != 0)
                    btAim[j++] = aryBytes[i];
            }

            return btAim;           
        }

 

结果验证:

 

字符串:1234

ASCII:  31 32 33 34
7BIT:    31 D9 8C 06
BIN :    00110001 11011001 10001100 00000110

 

字符串: hellohello

ASCII:   68 65 6C 6C 6F 68 65 6C 6C 6F
7BIT:     E8 32 9B FD 46 97 D9 EC 37
BIN :     11101000 00110010 10011011 11111101 01000110 10010111 11011001 11101100 00110111

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值