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); |
参考: