help with single precision floating point arithmetic

3 ビュー (過去 30 日間)
Aparna
Aparna 2011 年 11 月 9 日
回答済み: Tony Scarcia 2018 年 1 月 10 日
Hello Can you help me with the single precision floating point arithmetic in matlab I need to generate twiddle factors and obtain the output in the binary format( which is the standard IEEE 754 single precision 32-bit floating point format).Is there any function in MATLAB that will directly convert any value such as sine(pi/4)into the single precision format?
Thanks!

採用された回答

Walter Roberson
Walter Roberson 2011 年 11 月 9 日
dec2bin(typecast(single(pi),'uint32'),32)

その他の回答 (7 件)

Titus Edelhofer
Titus Edelhofer 2011 年 11 月 9 日
Hi,
guess what: the function is called 'single' ;-).
Titus

Daniel Shub
Daniel Shub 2011 年 11 月 9 日
You do need to be careful with MATLAB and converting to single. Potentially not obvious is that
isequal(single(pi*pi), single(pi)*single(pi))
Also, I believe that in some cases single precision numbers are converted to double precision during calcualtions

Aparna
Aparna 2011 年 11 月 9 日
@titus , i tried using the function but it doesn't produce the output in the 32 bit precision floating point format.
p.s. i need the output in binary
thanks for helping me with this.

Titus Edelhofer
Titus Edelhofer 2011 年 11 月 9 日
Hi Aparna,
I understand:
num2hex(single(pi))
Is that what you are looking for?
Titus

Aparna
Aparna 2011 年 11 月 9 日
hey! no i do not want the answer in Hexadecimal format i need it in binary 32 bit format. Could you help me with that?
  4 件のコメント
James Tursa
James Tursa 2016 年 8 月 24 日
So, did you try the above code? It works for matrices also.
Raiyyan  Masumdar
Raiyyan Masumdar 2016 年 8 月 25 日
yes it works, thank you !!!

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


Aparna
Aparna 2011 年 11 月 9 日
hey actually it works i guess! thank you daniel and titus
  1 件のコメント
Aparna
Aparna 2011 年 11 月 9 日
hey thank you so much it worked:)

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


Tony Scarcia
Tony Scarcia 2018 年 1 月 10 日
This will convert a single precision float to 32 bit binary using IEEE 754 format where;
  • s is the sign bit (bit 31)
  • e is the exponent (bits 30 to 23)
  • m is the mantissa (bits 22 to 0)
% a is the float number
% b is the 32 bit binary converted number
b = padarray(hexToBinaryVector(num2hex(single(a)))',32-length(hexToBinaryVector(num2hex(single(a)))'),'pre')';
sign = b(1)
exp = b(2:9)
mantissa = b(10:32)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by