How do perform negation on binary values using matlab?
Show older comments
for example given input is = 10011011 i need negation of only MSB bit therefore the result should be =00011011 how can this be performed using MATLAB
3 Comments
the cyclist
on 20 Feb 2014
Edited: the cyclist
on 20 Feb 2014
What is the variable type? Is it a character string?
Image Analyst
on 20 Feb 2014
Is this any different than your prior post http://www.mathworks.com/matlabcentral/answers/116422-how-to-perform-cancatenation-of-binary-numbers-using-matlab?
yeshwini
on 21 Feb 2014
Answers (2)
the cyclist
on 20 Feb 2014
Here is one way, if the input is a character string:
char(num2str(x'=='0'))'
I feel that there must be a better way, and I am just being dumb.
1 Comment
Alejandro Mesa Dame
on 26 Jul 2021
god-tier solution. thanks king.
the cyclist
on 20 Feb 2014
char('a'-x);
where x is your input string.
5 Comments
David Young
on 20 Feb 2014
the cyclist
on 21 Feb 2014
The synergy was quite deliberate on my part. If you would like to enter this as a solution yourself, I will happily delete this one, to give you the credit.
David Young
on 21 Feb 2014
I realised that it was deliberate - and effective! I put a solution on Cody, no need to change anything.
yeshwini
on 21 Feb 2014
the cyclist
on 21 Feb 2014
'a' is the character string for the letter 'a'. This is a nice trick to "subtract" your string x from the ASCII character 'a', which gives you what you want.
So, if
x = '0110';
y = char('a'-x);
will result in y having the value '1001'.
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!