По 3 вопросу:
Способ 1:
Код:
int i = 42;
String hexstr = Integer.toString(i, 16);
Способ 2:
Код:
int i = 42;
String hexstr = Integer.toHexString(i);
Способ 3 (с ведущими нулями и в верхнем регистре):
Код:
public class Hex {
public static void main(String args[]){
int i = 42;
System.out.print(Integer.toHexString( 0x10000 | i).substring(1).toUpperCase());
}
}