Matlab - transformar un número de hexadecimal a decimal

 
Vista:

transformar un número de hexadecimal a decimal

Publicado por Ivan (9 intervenciones) el 30/09/2019 01:20:32
Necesito transformar un número de hexadecimal a decimal pero debo hacer el proceso no utilizar la funcion hex2dec de matlab
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

transformar un número de hexadecimal a decimal

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 30/09/2019 01:42:05
Podría mostrar un problema resuelto en forma analítica de su pregunta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

transformar un número de hexadecimal a decimal

Publicado por Ivan (9 intervenciones) el 30/09/2019 01:48:54
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
clear all
clc
a=input('Ingrese el número en hexadecimal a convertir: ','s');
%D = hex2dec(a)
v=fliplr(a);%almacenamos en un vector
 
%añado elementos
for n=1:length(v)
if v(n)=='a'||'A'
    v(n)=10;
    multia=v(n)*16^(n-1)
end
if v(n)=='b'||'B'
    v(n)=11;
    multib=v(n)*16^(n-1)
end
if v(n)=='c'||'C'
    v(n)=12;
    multic=v(n)*16^(n-1)
end
if v(n)=='d'||'D'
    v(n)=13;
    multid=v(n)*16^(n-1)
end
if v(n)=='e'||'E'
    v(n)=14;
    multie=v(n)*16^(n-1)
end
if v(n)=='f'||'F'
    v(n)=15;
    multif=v(n)*16^(n-1)
end
suma
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

transformar un número de hexadecimal a decimal

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 30/09/2019 02:58:32
Le falta la condiciones cuando los dígitos son 1, 2,3,4,5,6,7,8,9.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

transformar un número de hexadecimal a decimal

Publicado por Ivan (9 intervenciones) el 30/09/2019 03:15:00
Si pero al momento de ejecutar me imprime multiplicando con todos los valores
No se como corregirlo
Como lo programarías tu?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

transformar un número de hexadecimal a decimal

Publicado por Ivan (9 intervenciones) el 30/09/2019 03:17:00
Y luego como sumo los valores no se donde se almacena para sumarlos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

transformar un número de hexadecimal a decimal

Publicado por Ivan (9 intervenciones) el 30/09/2019 03:29:18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
clear all
clc
a=input('Ingrese el número en hexadecimal a convertir: ','s');
%D = hex2dec(a)
v=fliplr(a);%almacenamos en un vector
 
%añado elementos
for n=1:length(v)
if v(n)=='1'
    conver=str2num(v(n))
    multi=conver*16^(n-1)
end
if v(n)=='2'
    conver=str2num(v(n))
    multi=conver*16^(n-1)
end
if v(n)=='3'
    conver=str2num(v(n))
    multi=conver*16^(n-1)
end
if v(n)=='4'
    conver=str2num(v(n))
    multi=conver*16^(n-1)
end
if v(n)=='5'
    conver=str2num(v(n))
    multi=conver*16^(n-1)
end
if v(n)=='6'
    conver=str2num(v(n))
    multi=conver*16^(n-1)
end
if v(n)=='7'
    conver=str2num(v(n))
    multi=conver*16^(n-1)
end
if v(n)=='8'
    conver=str2num(v(n))
    multi=conver*16^(n-1)
end
if v(n)=='9'
    conver=str2num(v(n))
    multi=conver*16^(n-1)
end
if v(n)=='A'
 
    conver=str2num(v(n))
    conver=[10];
 
    multi=conver*16^(n-1)
end
if v(n)=='B'
 
    conver=str2num(v(n))
    conver=11;
    multi=conver*16^(n-1)
end
if v(n)=='C'
 
    conver=str2num(v(n))
    conver=12;
    multi=conver*16^(n-1)
end
if v(n)=='D'
 
    conver=str2num(v(n))
    conver=13;
    multi=conver*16^(n-1)
end
if v(n)=='E'
 
    conver=str2num(v(n))
    conver=14;
    multi=conver*16^(n-1)
end
if v(n)=='F'
 
    conver=str2num(v(n))
    conver=15;
    multi=conver*16^(n-1)
end
 
end


Con este código ya me da las multiplicaciones ahora como puedo hacer que sume las multiplicaciones lo que va almacenando multi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

transformar un número de hexadecimal a decimal

Publicado por Ivan (9 intervenciones) el 30/09/2019 01:50:38
la idea es tratar de almacenar el numero en un vector y luego multiplicar la posición 1 por 16^0 la posición 2 * 16^1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

transformar un número de hexadecimal a decimal

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 30/09/2019 03:23:53
intenta para el numero por ejemplo 'A3B' , y no use for por momento, hágalo como si lo estuviera resolviendo en una hoja.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

transformar un número de hexadecimal a decimal

Publicado por Ivan (9 intervenciones) el 30/09/2019 03:49:53
Podría darme una Guía de como hacerlo porque tendría que transformar la letra pero como almaceno para que vaya sumando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

transformar un número de hexadecimal a decimal

Publicado por Ivan (9 intervenciones) el 30/09/2019 04:18:34
Ahi le suma con la variable de repeticiones pero yo no necesito esa variable si no la de la posición
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

transformar un número de hexadecimal a decimal

Publicado por Ivan (9 intervenciones) el 30/09/2019 04:27:50
Después de tanto esfuerzo ha funcionado
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
clear all
clc
a=input('Ingrese el número en hexadecimal a convertir: ','s');
%D = hex2dec(a)
v=fliplr(a);%almacenamos en un vector
 
%añado elementos
multi=0;
for n=1:length(v)
if v(n)=='1'
    conver=str2num(v(n))
    multi=multi+conver*16^(n-1)
 
end
 
if v(n)=='2'
    conver=str2num(v(n))
    multi=multi+conver*16^(n-1)
end
if v(n)=='3'
    conver=str2num(v(n))
    multi=multi+conver*16^(n-1)
end
if v(n)=='4'
    conver=str2num(v(n))
    multi=multi+conver*16^(n-1)
end
if v(n)=='5'
    conver=str2num(v(n))
    multi=multi+conver*16^(n-1)
end
if v(n)=='6'
    conver=str2num(v(n))
    multi=multi+conver*16^(n-1)
end
if v(n)=='7'
    conver=str2num(v(n))
    multi=multi+conver*16^(n-1)
end
if v(n)=='8'
    conver=str2num(v(n))
    multi=multi+conver*16^(n-1)
end
if v(n)=='9'
    conver=str2num(v(n))
    multi=multi+conver*16^(n-1)
end
if v(n)=='A'
 
    conver=str2num(v(n))
    conver=[10];
 
    multi=multi+conver*16^(n-1)
end
if v(n)=='B'
 
    conver=str2num(v(n))
    conver=11;
    multi=multi+conver*16^(n-1)
end
if v(n)=='C'
 
    conver=multi+str2num(v(n))
    conver=12;
    multi=conver*16^(n-1)
end
if v(n)=='D'
 
    conver=str2num(v(n))
    conver=13;
    multi=multi+conver*16^(n-1)
end
if v(n)=='E'
 
    conver=str2num(v(n))
    conver=14;
    multi=multi+conver*16^(n-1)
end
if v(n)=='F'
 
    conver=str2num(v(n))
    conver=15;
    multi=multi+conver*16^(n-1)
end
 
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar