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

What does a 1's complement of a floating point bit pattern even mean to you? How do you intend to use this result?
kintali narendra
kintali narendra 2021년 2월 5일
편집: kintali narendra 2021년 2월 5일
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.

댓글을 달려면 로그인하십시오.

 채택된 답변

Walter Roberson
Walter Roberson 2021년 2월 5일

0 개 추천

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

댓글 수: 9

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');
Thank you. it worked.
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');
kintali narendra
kintali narendra 2021년 2월 8일
편집: kintali narendra 2021년 2월 8일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by