Red de conocimiento informático - Material del sitio web - ¿Cómo convertir un número binario de 16 con signo a un número decimal en Matlab?

¿Cómo convertir un número binario de 16 con signo a un número decimal en Matlab?

La función de código convierte datos hexadecimales con signo en datos decimales con signo y los almacena en un archivo de texto:

Borrar todo

Centro de control de croma

%%Leer datos hexadecimales

FID = fopen(' C:\Users\Administrator\Desktop\test\data_hex.txt','r+');

if fid == -1

disp('fopen falló');

Otro

ReadData = textscan(fid, ' % s ');

Fin

fclose(FID);

%% lee un número en base 16 de la matriz de celdas y lo convierte en datos sin firmar.

Para I = 1:longitud(leer datos { 1 })

datos(I)= hex 2 dec(ReadData { 1 } { I });

Fin

%%Convierta datos sin firmar en datos firmados de acuerdo con el ancho de bits de los datos (los datos sin firmar no requieren esta operación).

Para i=1: longitud(datos)

if(data(i)>2 8/2-1)% rango de datos con signo de 8 bits de ancho [-128, 127 ], (2 8/2-1 = 127), modificado según el ancho de broca real.

datos _ dec(I)= datos(I)-2^8

Otros

datos _ dec(I)= datos(I);

Fin

Fin

Datos extendidos

Matlab lee números hexadecimales

Enviar por puerto serie Los datos enviados al host suele estar en base 16, y nuestros datos de comparación intuitivos están en forma de base 10, lo que requiere convertir la base 16 en base 10.

Después de guardar los datos recopilados en un archivo TXT a través del asistente de depuración del puerto serie, la primera pregunta es cómo lee Matlab el valor del archivo TXT. Matlab tiene una función textread, que se puede implementar. Por supuesto, también puedes usar fopen, pero textread es relativamente simple. Para el uso de lectura de texto, consulte la documentación de ayuda. La conversión de 16 a 10 utiliza otra función de matlab, hex2dec(a).

Leer archivo de texto binario:

Si el contenido del documento de texto es 0001 0010 001 0100 1000, se guarda en el documento pin.txt.

Utilice a=textread('pin.txt ', ' %s ')'

a = ' 0001 ' ' 0010 ' ' 0011 ' ' 0100 ' ' 1000 '

Puedes ver que los datos se guardan en formato char.