Pessoal, o problema é o seguinte: tenho um arquivo txt, peguei a primeira linha desse arquivo, que é essa:
add $1, $2, $3
essa linha está numa variável do tipo String, mas tenho que pegar cada número desse e transformá-lo em binário, acredito que para isso eu devo guardar cada número numa variável de tipo diferente (talvez int) e usar um método que transforma decimal em binário (já vi algo assim em algum lugar).
Isso aí embaixo separa a instrução e converte o identificador do registrador para binário:
String inst = "add $1, $2, $3";
String[] op = inst.split("([\p{Space} | \p{Punct}])+");
System.out.println(op[0]);
for (int i = 1; i < op.length; i++) {
op[i] = Integer.toBinaryString(Integer.parseInt(op[i]));
System.out.println(op[i]);
}
C
C3pOPJ
iae pessoal bom dia
vc poderia esplicar o q ocorre dentro dos parenteses do split???
inst.split("([\p{Space} | \p{Punct}])+");
desde ja obrigado
V
vieciliPJ
é uma expressão regular que separa a string sempre que houver uma sequencia de um ou mais (sinal +) caractere de espaço ou de pontuação ([\p{Space} || \p{Punct}])
J
JalersonPJ
Ok e para pegar uma string e transformá-la em hexadecimal?
Obrigado!
A
AnPJ
Decimal para Binário:
Stringstr=Integer.toBinaryString(int)
Decimal para Octal:
Stringstr=Integer.toOctalString(int)
Decimal para Hexadecimal
Stringstr=Integer.toHexString(int)
Binário para Decimal
intdec=Integer.parseInt(str,2)
Octal para Decimal
intdec=Integer.parseInt(str,8)
Hexadecimal para Decimal
intdec=Integer.parseInt(str,16)
J
JalersonPJ
Não sei se isso é possível, mas eu estava precisando melhorar essa expressão regular, pois ela não funciona se houver(em) espaço(s) antes da instrução add.