read csv file and convert 'double' to binary

f = csvread('S21.csv',double=>binary);
I read .csv file in 'double'
ex) f(1,1) = 1.5111
I want to convert it to binary, 010101010,
no data loss as possible as.
How can I do???
Thank you for your coperation

回答 (1 件)

Ameer Hamza
Ameer Hamza 2020 年 10 月 8 日

0 投票

See dec2hex(): https://www.mathworks.com/help/matlab/ref/dec2hex.html or num2hex(): https://www.mathworks.com/help/matlab/ref/num2hex.html if you want to use IEEE-754 format for conversion.

4 件のコメント

je heo
je heo 2020 年 10 月 8 日
編集済み: je heo 2020 年 10 月 8 日
thank you for your answer
but i want only binary form which has '0100010101' .
Walter Roberson
Walter Roberson 2020 年 10 月 8 日
The example you posted first had 9 bits, and this version has 10 bits. How many bits of output are you looking for?
reshape(dec2bin(typecast(1.5111, 'uint8'),8).', 1, [])
ans = '0000010111000101100011110011000101110111001011011111100000111111'
je heo
je heo 2020 年 10 月 12 日
thank you for your answer.. ^^
Walter Roberson
Walter Roberson 2020 年 10 月 12 日
Note that the above is just one representation of 1.5111, and that it is not to be interpreted as something like
00000101.11000101100011110011000101110111001011011111100000111111
You get closer to that kind of representation with
reshape(dec2bin(typecast(swapbytes(1.5111), 'uint8'),8).', 1, [])
ans = '0011111111111000001011010111011100110001100011111100010100000101'
but this again is not to be interpreted as a binary fraction, at least not without careful examination.
The first bit is the sign bit. The next 11 bits are the exponent, with a bias of 1022. The remaining 52 bits are a binary fraction with an implied "1." in front of it.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeData Type Conversion についてさらに検索

質問済み:

2020 年 10 月 8 日

コメント済み:

2020 年 10 月 12 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by