Binary floating point Representation in Matlab
35 views (last 30 days)
Show older comments
Floating-point numbers are represented as
X=(-1)^s*m*2^c.
s: the sign
m:matissa
c:exponent
For example
The value 1.9844 as Binary floating point would be REF
0 01111111 11111100000000011010010
^ Sign bit
^^^^^^^^ Exponent
^^^^^^^^^^^^^^^^^^^^^^^ Fraction
But in matlab ,how doing the same work in this vector ?
A=[ 0.1900 -0.0300 -0.1300 0 0.1500 -0.0700 0.0500 0.1600 -0.2500 -0.1900];
0 Comments
Accepted Answer
James Tursa
on 12 Sep 2019
Did you try it?
>> A=[ 0.1900 -0.0300 -0.1300 0 0.1500 -0.0700 0.0500 0.1600 -0.2500 -0.1900];
>> dec2bin(typecast(A,'uint64'),64)
ans =
0011111111001000010100011110101110000101000111101011100000000000
1011111110011110101110000101000111101011100001010010000000000000
1011111111000000101000111101011100001010001111010111000000000000
0000000000000000000000000000000000000000000000000000000000000000
0011111111000011001100110011001100110011001100110011010000000000
1011111110110001111010111000010100011110101110000101000000000000
0011111110101001100110011001100110011001100110011001101000000000
0011111111000100011110101110000101000111101011100001010000000000
1011111111010000000000000000000000000000000000000000000000000000
1011111111001000010100011110101110000101000111101011100000000000
4 Comments
Nolan Dyck
on 22 Sep 2022
@James Tursa dec2bin appears to be working properly in R2022a Update 1, at least for your example.
>> dec2bin(typecast(0.1900, 'uint64'), 64)
ans =
'0011111111001000010100011110101110000101000111101011100001010010'
James Tursa
on 22 Sep 2022
Edited: James Tursa
on 22 Sep 2022
Good to know. Thanks. Online R2022b seems to work as well:
dec2bin(typecast(0.1900, 'uint64'), 64)
More Answers (1)
Bruno Luong
on 12 Sep 2019
Edited: Bruno Luong
on 16 Sep 2019
To overcome the limitation of dec2bin at 52 bits
A=[ 0.1900 -0.0300 -0.1300 0 0.1500 -0.0700 0.0500 0.1600 -0.2500 -0.1900]
b = reshape(dec2bin(flipud(reshape(typecast(A,'uint8'),8,[])),8)',64,[])'
ans =
10×64 char array
'0011111111001000010100011110101110000101000111101011100001010010'
'1011111110011110101110000101000111101011100001010001111010111000'
'1011111111000000101000111101011100001010001111010111000010100100'
'0000000000000000000000000000000000000000000000000000000000000000'
'0011111111000011001100110011001100110011001100110011001100110011'
'1011111110110001111010111000010100011110101110000101000111101100'
'0011111110101001100110011001100110011001100110011001100110011010'
'0011111111000100011110101110000101000111101011100001010001111011'
'1011111111010000000000000000000000000000000000000000000000000000'
'1011111111001000010100011110101110000101000111101011100001010010'
0 Comments
See Also
Categories
Find more on Numeric Types in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!