当前位置:首页 » 编程语言 » java十六进制字符

java十六进制字符

发布时间: 2023-01-21 14:22:32

java中如何声明一个十六进制的字符串,或者说,怎么发送一个十六进制数据

static String
toHexString(int i)

以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
可以用这个试试,具体不知道你是什么意思。

❷ 用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中如何声明一个十六进制的字符串,或者说,怎么发送一个十六进制数据

先弄清楚:
1:“字节”是byte,“位”是bit ;
2: 1 byte = 8 bit ;

char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。
例:
char x = '我';
String str = "我";

byte[] bytes = str.getBytes(); //我想不明白,为什么这里要占用3个byte呢? 3个byte一共是3*8=24位;

那么char x 怎么又放得下?因为char是16位的啊??

原因:

byte[] bytes = str.getBytes();之后是3个字节,这里和前面的概念不一样。

java是用unicode来表示字符,"我"这个中文字符的unicode就是2个字节。 String.getBytes(encoding)方法是获取指定编码的byte数组表示,通常gbk/gb2312是2个字节,utf-8是3个字节。如果不指定encoding则取系统默认的encoding。

❹ java 十六进制字符串转换成long型

String x = Long.toHexString(Long.MAX_VALUE).toUpperCase();
System.out.println(x);
//Long.MAX_VALUE代表使用本函数所能转换的最大数值
//结果是7FFFFFFFFFFFFFFF
//远远小于你的

//所以如果你想转换只能自己做工具比如借助BigInteger

❺ 怎么把十六进制转换成字符 java

private static String hexString = "0123456789ABCDEF";
public static void main(String[] args) {
System.out.println(encode("中文"));
System.out.println(decode(encode("中文")));
}
/*
* 将字符串编码成16进制数字,适用于所有字符(包括中文)
*/
public static String encode(String str) {
// 根据默认编码获取字节数组
byte[] bytes = str.getBytes();
StringBuilder sb = new StringBuilder(bytes.length * 2);
// 将字节数组中每个字节拆解成2位16进制整数
for (int i = 0; i < bytes.length; i++) {
sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4));
sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));
}
return sb.toString();
}

/*
* 将16进制数字解码成字符串,适用于所有字符(包括中文)
*/
public static String decode(String bytes) {
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2);
// 将每2位16进制整数组装成一个字节
for (int i = 0; i < bytes.length(); i += 2)
baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString
.indexOf(bytes.charAt(i + 1))));
return new String(baos.toByteArray());
}
亲测可行,支持中文!!!

❻ Java中怎么表示八进制和十六进制

八进制:int
a=031;
//8进制,以数字0开始。
十六进制:int
b=0x1B;
//16进制,以0x开始。
1、八进制数的表达方法:

如何表达一个八进制数呢?如果这个数是
876,我们可以断定它不是八进制数,因为八进制
中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进
数还是10进制数,都有可能。 所以规定,一个数如果要指明它采用八进制,必须在它前面
上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数的表达方法。
2、十六进制数的表达方法


如果不使用特殊的书写形式,16进制数也会和10进制相混。随便一个数:9876,就看不出它是
16进制或10进制。
16进制数必须以
0x开头。比如
0x1表示一个16进制数。而1则表示一个
进制。另外如:0xff,0xFF,0X102A,等等。其中的x也也不区分大小写。(注意:0x中的0是数字
0,而不是字母O)

❼ 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中,如何将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);



❾ 怎么把字符串转化为十六进制字符串 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");

热点内容
solidworkspcb服务器地址 发布:2025-07-18 22:50:35 浏览:816
怎么在堆叠交换机里配置vlan 发布:2025-07-18 22:42:35 浏览:624
java调用别人的接口 发布:2025-07-18 22:37:35 浏览:435
服务器四个节点如何联网 发布:2025-07-18 22:36:02 浏览:273
华强北什么地方休安卓手机 发布:2025-07-18 22:24:56 浏览:736
数据库的根本目标 发布:2025-07-18 21:37:50 浏览:939
压缩机的流速 发布:2025-07-18 21:37:40 浏览:407
三星怎么取消手机密码 发布:2025-07-18 21:33:50 浏览:630
安卓手机耳机如何弹窗显示电量 发布:2025-07-18 21:20:53 浏览:60
云服务器搭建需要什么工具 发布:2025-07-18 20:51:08 浏览:322