📄 str2bin.m
字号:
function bin=str2bin(str,k,flag)
%功能:字符串转二进制串,字符串中每个字符对应8位二进制字符
%输入:str 字符向量 ascii字符串
%输出:bin 字符向量 二进制字符串
% flag 正整数 用以说明是否在二进制串中每隔k位加一位奇偶校验位,0表示不加,1表示加奇校验位,2表示加偶校验位
% k 正整数 参与每次奇偶校验位运算的bit位数
%说明: 当length(str)*8 mod k!=0时,对bin二进制串最后length(str)*8 mod k 位补零到k位后再做奇校验
l=length(str);
bin=[];
temp=[];
for x=1:l
temp=[temp,dec2bin(str(x),8)];
end
if flag~=0 %判断是否需要加奇偶校验位
n=ceil(l*8/k);% 校验位总位数
rb=mod(l*8,k);% 数据总长模k得的数
sb=0;
if rb~=0
sb=k-rb;%算出当二进制串做奇偶校验位时,在串尾补零的个数
for i=1:sb
z(i)='0';
end
temp=[temp z];%组成完整能够被k整除的数据
end
for x=0:n-1
temp1=temp(x*k+1:(x+1)*k);
lone=length(find(temp1=='1'));%求k位二进制串中1的个数
if flag==1 %计算奇校验位值
if mod(lone,2)==0
opb='1';
else
opb='0';
end
else if flag==2%计算偶校验位值
if mod(lone,2)==0
opb='0';
else
opb='1';
end
end
end
temp1=[temp1 opb];%添加校验位
bin=[bin temp1];
end
else
bin=temp;%若无校验位则直接相等
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -