How to find One's complement of floating point variable ?

Hi,
I used Simulink Bitwise Not operator to find the one's complement of uint8 type variable.
Now I want to find one's complement of float variable (double) using simulink.
Can you please help me on how to perform the task.
Thank you

2 Comments

What does a 1's complement of a floating point bit pattern even mean to you? How do you intend to use this result?
I need to convert float variable to binary number and then find one's complement of that, covert it into float variable again.
I am using it for redundancy validation.

Sign in to comment.

 Accepted Answer

typecast to uint64, take the one's complement, typecast back.
Caution: 1's complement of 0.0 is NaN.

9 Comments

the simulink model has run successfully but the answer is same for every number.
you used a Convert block which is not appropriate.
You need to use a MATLAB Function Block.
function out = fcn(u)
out = zeros(size(u));
out = typecast(bitxor(typecast(u, 'uint64'), 0xffffffffffffffffu64), 'double');
My version (2019a) doesn't support Walter's code. What result should be shown in the Display block when the input is 23?
function out = fcn(u)
out = zeros(size(u));
out = typecast(bitxor(typecast(u, 'uint64'), intmax('uint64')), 'double');
Hi Paul, these are my answers.
For 23 it is -0.1953
For 93 it is -0.04834
When the input is 23, do you want the Display block to show -0.1953? In other words, is -0.1953 the correct answer for 23 with respect to what you are trying accomplish?
From what you've described, I thought the goal was to get the decimal representation of the one's complement of the binary representation of 23. Is that what -0.1953 is?
yes, I want decimal representation of the one's complement.
The function which Walter recommened worked.
@Paul note in particular they wanted the one's complement of the binary representation of double precision numbers, not of an integer data type.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!