请高手解决,关于DELPHI位的运算?急!急!急!(在线等待)
8.7/6编码算法
考虑到目前全国各个地方的短信中心所支持的字符集有所不同,为了保证数据的透明可靠传输,制定了7/6编码算法,网控中心和车载终端在发送数据之前,需先经过7/6编码算法运算后才能发送出去;反之,接受端收到数据后要先经过7/6编码算法的逆过程后,再进一步的数据处理。具体的编码算法如下:
(1) 先将待传输的数据当作7位bit流,然后每6位组成一个新的字节。假设待传输的数据共有4个,分别为a、b、c、d,如表9-1所示。则经6位转换后,结果为A、B、C、D、E,如表9-2所示。
    7 6 5 4 3 2 1 0
a   0 a6 a5 a4 a3 a2 a1 a0
b   0 b6 b5 b4 b3 b2 b1 b0
c   0 c6 c5 c4 c3 c2 c1 c0
d   0   d6 d5 d4 d3 d2 d1 d0
转换后:
    7 6 5 4 3 2 1 0
A   0 0 a6 a5 a4 a3 a2 a1
B   0 0 a0 b6 b5 b4 b3 b2
C   0 0 b1 b0 c6 c5 c4 c3
D   0 0 c2 c1 c0 d6 d5 d4
E   0 0 d3 d2 d1 d0 0 0在实际应用中可能是N个字节。

解决方案 »

  1.   

    这个就是把6个BYTE与7个BYTE转换罢了,用SHL和SHR移位,用AND、OR做位处理就OK
      

  2.   

    将单个数据左移或者右移一位即可,即shl或shr,然后循环将所有数据处理完成。
      

  3.   

    这个就是把6个BYTE与7个BYTE转换罢了,用SHL和SHR移位,用AND、OR做位处理就OK
    将单个数据左移或者右移一位即可,即shl或shr,然后循环将所有数据处理完成。
      

  4.   

    你给的示意图我有点儿不明白
    在第一组的a,b,c,d中每个字母共有0~7共8个数据,这每个数据又有一个两位的十六进制数表示,如果这样的话,用SHL和SHR不能完成你的要求,SHL等两个命令都是进行位运算的,你的要求不像是进行位运算的请说明清楚
      

  5.   

    有一点不是很明白,每个字节有8个bit,这里的7个bit是怎么来的呢?
      

  6.   

    解释清楚一点,帮你写点代码搞定它。一个字节8个bit,怎么变成7个bit的呢?