フィルターのクリア

FI data type NOT operator?

1 回表示 (過去 30 日間)
Sean Little
Sean Little 2011 年 7 月 21 日
I am trying to take the BITNOT of an FI data type. For example if I have the following code:
tst = fi(5, numerictype(0,4,0));
How would I get the bitwise NOT of 5 (which should be hex A, or 10)? The ~ operator is the logical not, and is not what I need. I have searched the documentation, and maybe I missed it, but there does not seem to be anything in the BITWISE operators section. Am I just going nuts? Is the only way to do this do use a for loop with the BITSET/BITGET commands?
Thanks.

採用された回答

Walter Roberson
Walter Roberson 2011 年 7 月 21 日
Maxval = fi(15, numerictype(0,4,0));
bitnot5 = bitxor(Maxval, tst);
I do not know why there is no specific bitnot(), but this is a common transformation, bitwise_not(value) = xor(all_ones, value)
  1 件のコメント
Sean Little
Sean Little 2011 年 7 月 21 日
I should have caught that trick. Thanks or the tip. But I really think there should be a BITNOT command.

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

その他の回答 (1 件)

Kaustubha Govind
Kaustubha Govind 2011 年 7 月 22 日
You can use BITCMP:
tst = fi(5, numerictype(0,4,0))
tst_not = bitcmp(tst)

Community Treasure Hunt

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

Start Hunting!

Translated by