Convert decimal numbers to binary vectors
b = de2bi(d)
b = de2bi(d,n)
b = de2bi(d,n,p)
b = de2bi(d,[],p)
b = de2bi(d,...,flg
)
b = de2bi(d)
converts
a nonnegative decimal integer d
to a binary row
vector. If d
is a vector, the output b
is
a matrix, each row of which is the binary form of the corresponding
element in d
. If d
is a matrix, de2bi
treats
it like the vector d(:)
.
Note:
By default, |
b = de2bi(d,n)
is
the same as b = de2bi(d)
, except
that its output has n
columns, where n
is
a positive integer. An error occurs if the binary representations
would require more than n
digits. If necessary,
the binary representation of d
is padded with extra
zeros.
b = de2bi(d,n,p)
converts
a nonnegative decimal integer d
to a base-p
row
vector, where p
is an integer greater than or equal
to 2. The first column of b
is the lowest base-p
digit. b
is
padded with extra zeros if necessary, so that it has n
columns,
where n
is a positive integer. An error occurs
if the base-p
representations would require more
than n
digits. If d
is a nonnegative
decimal vector, the output b
is a matrix, each
row of which is the (possibly zero-padded) base-p form of the corresponding
element in d
. If d
is a matrix, de2bi
treats
it like the vector d(:)
.
b = de2bi(d,[],p)
specifies
the base p
but not the number of columns.
b = de2bi(d,...,
uses
the string flg
) flg
to determine whether the
first column of b
contains the lowest-order or
highest-order digits. Values for flg
are 'right-msb'
and 'left-msb'
.
The value 'right-msb'
produces the default behavior.
The code below counts to 10 in decimal and binary.
d = (1:10)'; b = de2bi(d); disp(' Dec Binary ') disp(' ----- -------------------') disp([d, b])
The output is below.
Dec Binary ----- ------------------- 1 1 0 0 0 2 0 1 0 0 3 1 1 0 0 4 0 0 1 0 5 1 0 1 0 6 0 1 1 0 7 1 1 1 0 8 0 0 0 1 9 1 0 0 1 10 0 1 0 1
The command below shows how de2bi
pads its
output with zeros.
bb = de2bi([3 9],5) % Zero-padding the output
bb =
1 1 0 0 0
1 0 0 1 0
The commands below show how to convert a decimal integer to base three without specifying the number of columns in the output matrix. They also show how to place the most significant digit on the left instead of on the right.
t = de2bi(12,[],3) % Convert 12 to base 3. tleft = de2bi(12,[],3,'left-msb') % Significant digit on left
The output is
t = 0 1 1 tleft = 1 1 0