首先16进制里面a代表的是10.b 代表11,f代表15
16进制就是每16进1
然后利用这个 原理。得到如下代码。经测试,下边代码两次输出的结果是相同的。
public class test1 {
public static void main(String[] args) {
String str="aabbcc";
String myStr[]={"a","b","c","d","e","f"};
int result=0;
int n=1;
for(int i=str.length()-1;i>=0;i--){
String param=str.substring(i,i+1);
for(int j=0;j<myStr.length;j++){
if(param.equalsIgnoreCase(myStr[j])){
param="1"+String.valueOf(j);
}
}
result+=Integer.parseInt(param)*n;
n*=16;
}
System.out.println(result);
System.out.println(Integer.parseInt(str, 16));
}
}
还有给的分太少啦。。。
B. Java如何自定义的byte[]数组写入文件
FileOutputStream.write(byte[] bytes)写入文件的是二进制码,你写入二进制1和0是不可见字符,必须用二进制/16进制文件格式打开才可以看到,
C. JAVA OutputStream写入串口
在你的代码基础上,加入你想要的代码。你看看,其实在串口的读取流的地方还能通过getOutputStream取得写入流。
while (en.hasMoreElements()) {
portId = en.nextElement();
try {
tempPort = portId.open("temp", 500);
if (!(tempPort instanceof SerialPort))
continue;
serialPort = (SerialPort) tempPort;
os = serialPort.getOutputStream();
int[] temp = {0xdd,0x33,0x44}; //这里写入你要向串口里写入的16进制数。16进制的数,你自己可以得到。
os.write(temp[0]);
os.write(temp[1]);
os.write(temp[2]);
// 如果有继续写。
os.flush(); // 将写入的缓存里的字符一次性写到串口里。
is = serialPort.getInputStream();
D. JAVA如何用一串16进制来初始化一个字符串对象
import java.io.UnsupportedEncodingException;
public class Test {
static public String Hex2Text(String src) throws UnsupportedEncodingException{
int len=src.length()/2; byte b[]=new byte[len];
for(int i=0;i<len;i++) b[i]=(byte) Short.parseShort(src.substring(i*2, (i+1)*2),16);
return new String(b,"UTF-8");
}
static public void main(String argv[]){
try{ System.out.println(Hex2Text("e4b8ade59bbd"));
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
}
}
=======
中国
========
才5分?
E. java 导出csv文件 出现16进制数字 怎么办我想还是变成数字字符串
可能有两方面的问题。
1。java导出数据的时候,导出的是什么类型的数字,如果在处理过专程中被编成了字符格属式,估计就比较麻烦。如果有,要保证输出的时候是double或者其他类型。
2。excel也会自动处理数字,你把相应列的单元格格式改变成普通,或者字符等,不让它自己变成科学计数法
F. java中怎么可以直接输出一个16进制变量的值
for(int i=0;i<100;i++){ System.out.println(Integer.toHexString(i));}//Integer.toHexString(int); 以十六进制复(基数制 16)无符号整数形式返回一个整数参数的字符串表示形式。
G. java怎么把16进制的串另存为图片
public class Hex2Image {
public static void main(String[] args) throws Exception {
Hex2Image to=new Hex2Image();
InputStream is=new FileInputStream("c:/work/today.txt");
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String str = null;
StringBuilder sb = new StringBuilder();
while ((str = br.readLine()) != null) {
System.out.println(str);
sb.append(str);
}
to.saveToImgFile(sb.toString().toUpperCase(),"c:/work/dd.jpg");
}
public void saveToImgFile(String src,String output){
if(src==null||src.length()==0){
return;
}
try{
FileOutputStream out = new FileOutputStream(new File(output));
byte[] bytes = src.getBytes();
for(int i=0;i< bytes.length;i+=2){
out.write(charToInt(bytes[i])*16+charToInt(bytes[i+1]));
}
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
private int charToInt(byte ch){
int val = 0;
if(ch>=0x30&&ch<=0x39){
val=ch-0x30;
}else if(ch>=0x41&&ch<=0x46){
val=ch-0x41+10;
}
return val;
}
}