?? 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 + -