用java实现零比特插入

零比特插入、删除
1.发送端在两个标志字段为F间的比特序列中,如果检查出连续的5个"1",不管后面的比特位是0或1,都增加一个“0”比特位,发送端经过零比特插入后的数据可以保证不会出现6个连续的“1”

2.接收端在接受一个帧时,首先找到F字段以确定帧的起始边界,接着对其中的比特序列进行检查,没发现5个连续的“1”,将后面的一个“0”比特位删除,还原成原来的比特序列。

例如:帧数据段中有“010000011111110101111110”
比特填充后是“01000001111101101011111010”
接收端还原为 “010000011111110101111110”
实现零比特插入

/*
功能:零比特插入
日期:2019/3/17
*/
package com.vivi;
import java.util.Scanner;
public class Demo {

    public static void main(String[] args) {
        //原来的二进制编码
        System.out.println("Please input binary code:");
        Scanner scan = new Scanner(System.in);
        String input = scan.next();
        System.out.println("original:" + input);

        //输出的编码
        String outCode = input.replace("11111","111110" );
        outCode = "01111110" + outCode + "01111110";
        System.out.println("output:" + outCode);

        //收到的编码
        String receiveNum = outCode;
        int count = 0;
        int start = receiveNum.indexOf("01111110") + 8;
        receiveNum = receiveNum.substring(8);
        int end = receiveNum.indexOf("01111110");
        receiveNum = receiveNum.substring(0, receiveNum.length()-8);
        System.out.println("receive:" + receiveNum);

        //处理后的编码
        receiveNum = receiveNum.replace("1111101","111111" );
        System.out.println("handle:" + receiveNum);
    }
}

  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值