Compatibility of Matlab with IEEE-754 1985 or 2008

2 次查看(过去 30 天)
Hi,
Is MATLAB compatible with IEEE-754 1985 or 2008 ?
-0 = +0 ? or -0 < +0
Best regards
C. VALPARD

采纳的回答

Steven Lord
Steven Lord 2021-3-18
Is MATLAB compatible with IEEE-754 1985 or 2008 ?
There are a few operations for which the IEEE specs state what the answer should be but MATLAB returns something different. The most obvious example is the sqrt function. As stated in the IEEE Compliance section on its documentation page the IEEE spec says sqrt(aNegativeNumber) should return NaN. But since MATLAB has the capability to work with complex numbers, we return a complex answer.
There are a handful of functions that have a similar section in their documentation.
As for your specific questions related to plus and minus zero:
format hex
x = -0
x =
8000000000000000
y = 0
y =
0000000000000000
Note the differences in the sign bits.
isLT = x < y
isLT = logical
0
isEQ = x == y
isEQ = logical
1
-0 and +0 are equal.
isPosInfX = (1./x) > 0
isPosInfX = logical
0
isPosInfY = (1./y) > 0
isPosInfY = logical
1
But you can tell the sign bit by computing 1./zero and seeing if you get Inf or -Inf.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by