Binary floating point Representation in Matlab
36 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Johan Johan
am 12 Sep. 2019
Bearbeitet: James Tursa
am 22 Sep. 2022
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 Kommentare
Akzeptierte Antwort
James Tursa
am 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 Kommentare
Nolan Dyck
am 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
am 22 Sep. 2022
Bearbeitet: James Tursa
am 22 Sep. 2022
Good to know. Thanks. Online R2022b seems to work as well:
dec2bin(typecast(0.1900, 'uint64'), 64)
Weitere Antworten (1)
Bruno Luong
am 12 Sep. 2019
Bearbeitet: Bruno Luong
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!