📄 int2bin.m
字号:
function b=int2bin(x,n)
% Usage: b=int2bin(x,n)
% integer to binary conversion, 0<=x <= 2^n,
% sign-magnitude representation with sign bit on the left
% b is a 1 by n vector of 0 and 1, with MSB at b(1)
% copyright 1996 by Yu Hen Hu
% Last modification: 2/23/96
% Allow x to be a vector. Then b will be a dim(x) by n matrix
% modified 11/25/97
% to allow n not specified!
x=diag(diag(x)); % convert x into a column vector
b=-(sign(x)-1)*0.5.*[x~=0]; % if x = 0, sign bit is 0 by default。开始的这个b是用来标示数值的符号的,为0是整数为1是负数
x=abs(x); % work on magnitude only from now on.
if nargin==2, %如果输入的参数是两个,其中x,与n的的关系满足下面条件
if max(x) >= 2^n,
error(' x must be smaller than 2^n')
end
elseif nargin==1, %如果输入的参数是一个的话,做以下处理
n=max(floor(log2(abs(x)))+1); %根据x的幅度值,找到最接近的n的数值
end
idx=diag(2^(diag([n-1:-1:0])));
for j=1:n
tmp = x - sign(x)*idx(j).*[x~=0]; %sign在这里是符号正数返回1,负数返回-1
% if x > 0, tmp = x - 2^(n-j), if x < 0, tmp=x+2^(n-j)
b= [b [tmp >= 0].*[x~=0]];
x=tmp;
end
%这个函数编的一般,个人认为比较复杂,在编辑符号,以及输入数据处理之后,可以直接利用dec2bin这个函数处理剩下的运算
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -