Convert text representation of binary integer to double value
converts the binary integer represented by
D = bin2dec(
binStr to the equivalent
decimal number and returns it as a double-precision floating-point value.
binStr represents an integer greater than or equal to
bin2dec might not represent it
exactly as a floating-point value.
Convert Text Representing Binary Value
Convert a character vector that represents a binary value to a decimal number.
binStr = '10111'; D = bin2dec(binStr)
D = 23
Starting in R2019b, you can write values in binary format directly without using
bin2dec. Use the
0b prefix and do not use quotation marks. MATLAB® stores the value as an integer, not as text.
D = 0b10111
D = uint8 23
Return Numeric Array
Create a string array that represents multiple binary values.
binStr = ["1111111111" "1111010" "1110"]
binStr = 1x3 string "1111111111" "1111010" "1110"
Convert the binary values and return a numeric array.
D = bin2dec(binStr)
D = 1×3 1023 122 14
Starting in R2019b, it is recommended that you create a numeric array using binary literals instead of converting text with
D = [0b1111111111 0b1111010 0b1110]
D = 1x3 uint16 row vector 1023 122 14
binStr — Text representing binary numbers
character array | cell array of character vectors | string array
Text representing binary numbers, specified as a character array, cell array of
character vectors, or string array.
binStr represents binary digits
using the characters
binStris a character array with multiple rows or a cell array of character vectors, then the output is a numeric column vector.
binStris a string array, then the output is a numeric array that has the same dimensions.
A binary number represented by
binStr can have no more than 53
Starting in R2020a,
binStr can be text that includes the same
0B) and suffixes used by binary
literals. For example, these calls to
bin2dec each return the
bin2dec('111') bin2dec('0b111') bin2dec('0b111s32')
Also, in R2020a
binStr can represent the two's complement of a
negative number, using a suffix that specifies a signed integer type. For example,
-1, because the
s8 suffix specifies the 8-bit signed integer type. In previous
binStr cannot represent a negative number.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
Input text must be specified as a character array or a string scalar. Cell arrays are not supported.
When the input is empty, the answer does not match the answer in MATLAB®.
GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.
Usage notes and limitations:
Input text must be specified as a character array. Cell arrays are not supported.
When the input is empty, the answer does not match the answer in MATLAB.
Run code in the background using MATLAB®
backgroundPool or accelerate code with Parallel Computing Toolbox™
This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.
Version HistoryIntroduced before R2006a
R2020b: Issue warning when input values are greater than or equal to
Behavior changed in R2020b
bin2dec function issues a warning when input values are greater than or equal to
flintmax. In previous releases,
bin2dec did not issue this warning.
bin2dec now issues a warning because inputs representing
integers greater than or equal to
flintmax might not be represented
exactly as double-precision floating-point values.
To convert values greater than
flintmax exactly, consider one of
In place of scalar text inputs, use hexadecimal or binary literals representing the same values. When you write a value as a literal, MATLAB stores it as an integer that represents the value exactly. For more information, see Hexadecimal and Binary Values.
To convert hexadecimal inputs greater than
flintmax, you can use the
sscanffunction with the
%lxoperator. When you use
%lx, the converted values are integers that have the
uint64data type. These integers have enough storage to represent values greater than