Matlab數值按位操作

2021-06-29 03:49:07 字數 1173 閱讀 4210

dec2bin(d, n)  十進位制轉為二進位制

d為輸入,n值設定最小輸出位數

dec2bin(10, 7)

ans =

0001010

bin2dec  二進位制轉換為十進位制

bin2dec('1011') % 內部需為字串

ans =

11

dec2hex  十進位制轉換為十六進製制

hex2dec  十六進製制轉換為十進位制

bitand 按位與操作

a = 7;

b = bitand(10, a); % b = 2

disp(dec2bin(a, 8)); % ans = 00000111

disp(dec2bin(b, 8)); % ans = 00000010

bitor 按位或操作

a = 15;

b = bitor(10,a);

disp(dec2bin(a,8)); %ans = 00001111

disp(dec2bin(b,8)); %ans = 00001111

bitxor 按位異或

a = 15;

b = bitxor(10,a);

disp(dec2bin(a,8)); ans = 00001111

disp(dec2bin(b,8)); ans = 00000101

bitshift 移位操作

bitshift(12, 2), %ans = 48 

左移兩位

bitshift(12, -2),%ans = 3  

右移兩位

bitset 設定制定bit位

bitset(uint8(9), 5)

,%ans = 25 將9

的第5位設定為1

bitget 獲取二進位制位

bitget(uint8(13), 4:-1:1), %ans = 1101

bitget(uint8(13), 1:4), %ans = 1011 從右向左取

bitcmp 獲取資料的補碼

bitcmp(uint8(99)) %ans = 156

bitxor(99,255),   %ans = 156 利用異或求補碼

c c 按位操作

因為有時候需要大量的標誌位來判斷當前狀態等。使用太多的int,bool等會使得程式不 漂亮 這時候需要 位 操作來解決 建立乙個標誌位 unsigned int globalmark 0 在定義一些巨集,如 define control w 0x01 define control a 0x02 de...

c c 按位操作

因為有時候需要大量的標誌位來判斷當前狀態等。使用太多的int,bool等會使得程式不 漂亮 這時候需要 位 操作來解決 建立乙個標誌位 unsigned int globalmark 0 在定義一些巨集,如 define control w 0x01 define control a 0x02 de...

通過按位與和按位或操作

通過按位與和按位或操作來拉高或者拉低某位的電平,用這兩種運算可以讓其他為的電平狀態不受影響。1.按位或 操作,可以實現拉高電平 0 1,即對應位至少有一者為1運算結果為1,都為0才為0 將需拉高電平的低電平位0與1進行按位或操作,0 1 1即可拉高電平。如果原操作為也有為0的,為保證其電平不改變,其...