2020-09-27 14:06:37
整理一些matlab中的按位操作技巧和一些讀/寫txt的函數:
函數名稱 | 函數功能 | 使用樣例 | 運行結果 | 說明 |
bitget | 獲取二進制數某一位的值 | A = bitget(8,4); | A = 1 | 十進制數8對應的二進制數(1000)的第4位 |
A = bitget(8,8: -1:1); | A = [0 0 0 0 1 0 0 0] | 取出所有位 | ||
bitset | 設置指定的位為0或1 | A = bitset(uint8(9), 4,0) | A = 1 | 將9的第4位設置為0 |
bitshift | 移位操作 | A = bitshift(8, -2) | A = 2 | 將8右移2位(第二個參數小於0為右移,大於0為左移) |
bitxor | 按位異或 | A = bitxor(2,9) | A = 11 | (0010)xor(1001) =(1011) = 11(dec) |
dec2hex | 十進制數轉為十六進制數 | A = dec2hex(256,4) | A = '0100' | 將十進制數256轉為4位十六進制數為0x0100(輸入需為整數) |
hex2dec | 十六進制數轉為十進制數 | A = hex2dec('0100') | A = 256 | 將十六進制數0x0100轉為十進制數為256 |
dec2bin | 十進制數轉為二進制數 | A = dec2bin (6,8) | A = '00000110' | 將十進制數6轉為八位的二進制數(輸入需為整數) |
bin2dec | 二進制數轉為十進制數 | A = bin2dec('00000010') | A = 2 | 將二進制數00000010轉為十進制數 |
sign | 判斷正負 | A = sign(-5) | A = -1 | 正數返回1,負數返回-1,零返回0 |
upper | 將字母轉為大寫 | A = upper('b') | A = 'B' | |
lower | 將字母轉為小寫 | A = upper('B') | A = 'b' |
十六進制 | 二進制 | |
從txt讀出 | data_hex = textread('data.txt','%s')'; data_dec = hex2dec(data_hex)';%轉為十進制 |
data_bin = textread('data.txt','%s')'; data_dec = bin2dec(data_bin)';%轉為十進制 |
寫入txt | fid = fopen('data.txt','w'); temp = ['0x',dec2hex(256)];%十進制256的十六進制為'100',再連接'0x'得到'0x100' fprintf(fid,'%s\n',temp); |
fid = fopen('data.txt','w'); temp = dec2bin(256);%十進制256的二進制為'100000000' fprintf(fid,'%s\n',temp); |
參考: