⑴ 怎么把字符串转化为十六进制字符串 java
思路:用一个初始化为0~9~a~f的字符串数组,也就是一个十六进制对应表,用这个对应表即可算出一个十六进制字符串的数值。
方法如下:
public static String str2HexStr(String str) {
char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
int bit;
for (int i = 0; i < bs.length; i++) {
bit = (bs[i] & 0x0f0) >> 4;
sb.append(chars[bit]);
bit = bs[i] & 0x0f; //位于运算
sb.append(chars[bit]); //进行字符串的拼接
}
return sb.toString();
}
调用方法如下:
String str = str2HexStr("asbd");
⑵ java如何把2进制字符串怎么转换成16进制字符串
package image;
public class Bean
{
public static void main ( String[] args )
{
String str = "10101011 10000100 01011011 01111100 00011100 01100010 00010111 10010010";
String[] strs = str.split ("\\s+");
String result = "";
for ( String string : strs )
{
String hex = Integer.toString (Integer.parseInt (string, 2), 16);
result += hex;
}
System.out.println (result);
}
}
⑶ java 字符串转十六进制,例如输入010216,转换后是0x01,0x020x10,就是每两位的去转请大侠指教
public static String cvtStr2Hex(String str) {
if (str == null)
return "";
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < str.length() / 2; i ++) {
String sub = str.substring(i*2, i*2 + 2);
sb.append("0x"清槐 + sub.toUpperCase() + " ");
}
// 转答禅友换的时候一定注意将自己的文件编码改袭前成GBK
return sb.toString();
}
⑷ java中如何将byte[]里面的数据转换成十六进制
方法如下:
/* *
* Convert byte[] to hex string.这里我们可以将byte转冲脊换成int,然后利用Integer.toHexString(int)
*来转换成16进制字符散悔渗串。
* @param src byte[] data
* @return hex string
*/
public static String bytesToHexString(byte[] src){
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
此方法能将byte[]转化成16进制字符串,
⑸ java 将十进制转换成十六进制字符串
importjava.util.Scanner;
publicclassTentoSixteen{
privatestaticStringBuildersum=newStringBuilder();
privatestaticintrulst;//定义一个结果,记录数与15的与运算结果,求得原数二进制最后四位的值
privatestaticintcount;//若数的二进制不止四位,定义一个数来记录除去后四位的新数,运用递归作用与rulst相同
privatestaticvoidTtoSMethod1(inti){//JDK自带的转化方法
Stringexchanged=Integer.toHexString(i);
System.out.println(exchanged);
}
privatestaticvoidSop(){//将得到的字符串反转
System.out.println(sum.reverse().toString());
}
privatestaticvoidsubim(intrulst){//判断是否超出10,根据十六进制的规则超出10部分由字母ABCDEF代替
if(rulst<10){
sum.append(rulst);
}else{
sum.append((char)('A'+(rulst-10)));//将int强制转换为char
}
}
privatestaticvoidTtoSMethod2(inti){
rulst=i&15;
if(i<(1<<4)&&i>=0){//判断数有多少位,大于0小于16,则转换后打直接印
subim(rulst);
}else{//不止四位的数则用递归来多次运算
count=i>>4;//除去最后四位
subim(rulst);
TtoSMethod2(count);//递归直到count为0止
}
}
publicstaticvoidmain(String[]args){
@SuppressWarnings("resource")
Scannerscan=newScanner(System.in);
System.out.println("请出入一个十进制数:");
intnum=scan.nextInt();
TtoSMethod1(num);//自带方法
TtoSMethod2(num);//自定义方法,可将任意的十进制转化为十六进制
Sop();//输出
}
}
⑹ 用JAVA将十进制转换成十六进制
1、用Integer.toHexString方法即可将十进制装成十六进制。
package com.test;
public class Test {
public static void main(String[] args) {
int i = 123;
System.out.println(Integer.toHexString(i));
}
}
⑺ JAVA:string类型转换int(16进制)
使用旦枯AT%IPSEND="XXXX"指令,但只模巧洞能作为字符发送,直接发送十宽巧六进制。
⑻ java字符串转16进制
1、写转换函数是必须的,目前Jdk中无现有类。
2、在不同的字符编码当中,汉字的对应的数值或者说编码值不一样,像GBK、Unicode肯定是不一样的。以Java默认的Unicode为例说明问题。
3、 一,得到字符串,
二,遍历每个字符,用char来接收,实为int值,或直接用int也可以。
三,Integer.toHexString(每个字符对应的int值);
四,前缀加个“0x”就可以了。
4、如果是其它类型的话,找到对应的字符和数值对应表就可以了。
不知可否解决问题了。
⑼ java中怎么样从字符串转换成16进制字符数组
每两个旦汪取出来,使用
Integer.parseInt("58", 16)
这样冲迟蔽处散州理
⑽ java中,如何将double类型数据转换为16进制字符串或者是16进制字节数组
1、转化为long类型
先Double.doubleToLongBits/Double.doubleToRawLongBits,得到long类型,
例子:
longl=0x0102030405060708L;
2、转化为16进制字符串或数组
byte[]b=newbyte[8];
b[0]=(byte)(l&0x000000000000FFL);
b[1]=(byte)((l&0x0000000000FF00L)>>8);
b[2]=(byte)((l&0x0000000000FF0000L)>>16);
b[3]=(byte)((l&0x00000000FF000000L)>>24);
b[4]=(byte)((l&0x000000FF00000000L)>>32);
b[5]=(byte)((l&0x0000FF0000000000L)>>40);
b[6]=(byte)((l&0x00FF000000000000L)>>48);
b[7]=(byte)((l&0xFF00000000000000L)>>56);