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 ',temp);

 

fid = fopen('data.txt','w'); 

temp = dec2bin(256);%十进制256的二进制为'100000000'

fprintf(fid,'%s ',temp);

参考:

https://blog.csdn.net/qq_41985630/article/details/84313556

原文地址:https://www.cnblogs.com/CCWangsj/p/13739627.html