Matlab中的按位操作、进制转换、读/写十六进制和二进制的txt
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); |
参考: