曼彻斯特编码:曼彻斯特编码将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。
曼彻斯特编码表示0或1有两种不同的方法:
第一种G. E. Thomas, Andrew S. Tanenbaum1949年提出的,它规定0是由低-高的电平跳变表示,1是高-低的电平跳变。
按此规则有:
- 编码0101(即0x5),表示原数据为00;
- 编码1001(0x9)表示10;
- 编码0110(0x6)表示01;
- 编码1010(0xA)表示11。
第二种IEEE 802.4(令牌总线)和低速版的IEEE 802.3(以太网)中规定, 按照这样的说法, 低-高电平跳变表示1, 高-低的电平跳变表示0。 - 编码0101(0x5)表示11;
- 编码1001(0x9)表示01;
- 编码0110(0x6)表示10;
- 编码1010(0xA)表示00;
如何做题?
这里的话就拿i春秋上的题目开刀了
题目在i春秋上还有,以下题面均摘自i春秋
5555555595555A65556AA696AA6666666955 这是某压力传感器无线数据包解调后但未解码的报文(hex) 已知其ID为0xFED31F,请继续将> 报文完整解码,提交hex。 tips:flag是flag{破译出的明文} 提示1:曼联
曼联的全称是曼彻斯特联足球俱乐部,这个提示很谐。这串二进制字符串中只包含四种字符:5 6 9 A ,实际上就是0b0101 0b0110 0b1001 0b1010 ,就是曼彻斯特编码中,0和1的两种位的翻转.
解密脚本:
def conv(s):
return hex(int(s, 2))[2:]
def IEEE802(bs):
pass
dict = {
"0101": "11",
"1001": "01",
"0110": "10",
"1010": "00"
}
bs=str(bs