导航:首页 > 编程语言 > java16进制char

java16进制char

发布时间:2023-01-26 02:39:04

❶ 用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中如何输入一个char型字符。

方法一:

Scanner cin=new Scanner(System.in);

String s=cin.nextLine();

char ans=s.charAt(0);

这样即可获取一个字符。

方法二:

byte[] b=new byte[2];

try{

System.in.read(b)

}catch(Exception e){}

char ans=new String(b).charAt(0);

这样即可获取一个字符

❸ java 怎么将char转化为16进制

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]);
sb.append(' ');
}
System.out.println(sb.toString().trim());

❹ 解释java中 (char) (c ^ 0x20) 的意思

位运算是CPU直接支持,效率最高的
char 类型,在java里也是由数字组成的
0x20是16进制20的表示法,转换成10进制是等于 32
c ^ 32 这是位运算(异或运算) 同位为0,结果才为0,否则都为1
可能这个移位后,刚好等于大写吧

❺ 使用java,如何将十六进制数D6CD2F01转换为十进制数19910102

import java.util.Scanner;

public class test2{

public static void main(String [] args){
Scanner cin=new Scanner(System.in);
String num1="D6CD2F01";//"D6CD2F01";
//long n=Long.parseLong(num1,16);//由16进制转化为10进制(两个都行,1:返回long;2:返回Long)
long n=Long.valueOf(num1,16);
System.out.print(n);
/*
D6CD2F01的十进制数已经超过int的范围了
3603771137
*/
}
}

❻ java写的十六进制转化为十进制,类型转换char->int出错

十六进制转换成十进制,必须先把十六进制转换成二进制,给你看一下我写的代码:
import java.util.Scanner;
public class test{
//判断一个字符串是否是一个十六进制的字符串
private static boolean isXNumber(String str){
int count = 0;
str = str.toUpperCase(); //如果输入小写字符就转成大写字母
for (int i = 0; i < str.length(); i++) {
if (((int)str.substring(i, i+1).charAt(0)>=48&&(int)str.substring(i, i+1).charAt(0)<=57)||
((int)str.substring(i, i+1).charAt(0)>=65&&(int)str.substring(i, i+1).charAt(0)<=70)) {
count++;
}
}
if (count==str.length()) {
return true;
}else {
return false;
}
}
//将十六进制字符串转成二进制字符串
private static String XNumberToBNumber(String str){
String temp="";
if (isXNumber(str)==true) {
for (int i = 0; i < str.length(); i++) {
if (str.substring(i, i+1).charAt(0)=='0') {
temp+="0000";
}else if (str.substring(i, i+1).charAt(0)=='1') {
temp+="0001";
}else if (str.substring(i, i+1).charAt(0)=='2') {
temp+="0010";
}else if (str.substring(i, i+1).charAt(0)=='3') {
temp+="0011";
}else if (str.substring(i, i+1).charAt(0)=='4') {
temp+="0100";
}else if (str.substring(i, i+1).charAt(0)=='5') {
temp+="0101";
}else if (str.substring(i, i+1).charAt(0)=='6') {
temp+="0110";
}else if (str.substring(i, i+1).charAt(0)=='7') {
temp+="0111";
}else if (str.substring(i, i+1).charAt(0)=='8') {
temp+="1000";
}else if (str.substring(i, i+1).charAt(0)=='9') {
temp+="1001";
}else if (str.substring(i, i+1).charAt(0)=='A') {
temp+="1010";
}else if (str.substring(i, i+1).charAt(0)=='B') {
temp+="1011";
}else if (str.substring(i, i+1).charAt(0)=='C') {
temp+="1100";
}else if (str.substring(i, i+1).charAt(0)=='D') {
temp+="1101";
}else if (str.substring(i, i+1).charAt(0)=='E') {
temp+="1110";
}else if (str.substring(i, i+1).charAt(0)=='F') {
temp+="1111";

}}
}
return temp;
}
public static void main(String[] args) {
System.out.print("请输入一个十六进制数:");
String XNumner= new Scanner(System.in).next();
if (isXNumber(XNumner)==false) {
System.out.println("你输入的不是一个十六进制数!");
}else{
int sum = 0;
int count = XNumberToBNumber(XNumner).length() - 1;
for (int i = 0; i < XNumberToBNumber(XNumner).length(); i++) {
sum+=(Integer.parseInt(XNumberToBNumber(XNumner).substring(i,i+1))*(int)Math.pow(2, count));
count--;
}
System.out.print("十六进制数:"+XNumner+",对应的十进制数是:"+sum);
}
}
}

❼ 怎么用java读写16进制的数

public static int hexToDec(String sn) {

if (null == sn && 0 == sn.trim().length())

throw new IllegalArgumentException("接收的参数 “" + sn + "” 不是十六进制表示形式!");

final String P = "0x";

if (sn.toLowerCase().startsWith(P)) {

final String regex = "[^\\da-fA-F]";

int i = Regexutils.matcheRegexp(sn.substring(2), regex, false);

if (0 != i)

throw new IllegalArgumentException("接收的参数 “" + sn

+ "” 不是十六进制表示形式!");

else {

char[] cs = sn.substring(2).toUpperCase().toCharArray();

char c;

for (int j = 0; j < cs.length; j++) {

c = cs[j];

i += toDec(c, (cs.length - j - 1));

}

return i;

}

}

return 0;

}

private static int toDec(char c, int i) {

final double N = 16.0;

int n = getNum(c);

int r = (int) (n * Math.pow(N, (double) i));

return r;

}

private static int getNum(char c) {

// 字符F转换成为数字为70

if ((int) c > 70)

return 0;

int i = 0;

switch (c) {

case ''A'':

i = 10;

break;

case ''B'':

i = 11;

break;

case ''C'':

i = 12;

break;

case ''D'':

i = 13;

break;

case ''E'':

i = 14;

break;

case ''F'':

i = 15;

break;

case ''a'':

i = 10;

break;

case ''b'':

i = 11;

break;

case ''c'':

i = 12;

break;

case ''d'':

i = 13;

break;

case ''e'':

i = 14;

break;

case ''f'':

i = 15;

break;

}

if (0 == i) {

// 字符0转换成为数字为48

return (int) c - 48;

} else

return 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 16进制数的问题

如果只是为了实现这个效果 java自带的类中已经有帮你实现好的方法 你直接调用就行了
Integer.toHexString(int i)将10进制转16进制
如果是为了自己实现来查看原理
需要知道计算机中的数字都是按2进制存储的
int类型的数字占32个bit位
具体实现代码
//这个代码是通用的 num就是你要转化的数字 base是参与位运算的数字 offset是一次运算//// //后右移位数,要实现你的需求 只需要在调用时 把base设置为15 offset设置为4就好了
public static String trans(int num,int base,int offset ){
if(num==0){
return "0";
}
char[] arr={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//定义对应表
char[] res=new char[32];//Int类型32位bit
int pose=res.length;//当前所在数组位置指针
while(num!=0){
int temp=num & base;//最低位与运算
res[--pose]=arr[temp];//保存转换后的低位
num=num >>> offset;//次低位移动到最低位
}
String st=new String(res);
return st.trim();
}

阅读全文

与java16进制char相关的资料

热点内容
有一部电影主角是弹吉他的 浏览:761
主角是种马穿越到动漫小说 浏览:392
免费看电影无广告,无弹窗的网 浏览:610
sublimephp错误提示 浏览:913
萤石云服务器安装路径 浏览:643
pm3读国产加密卡 浏览:507
解放战争片老电影完整版 浏览:989
提取应用app安装包什么意思 浏览:843
公司服务器地址怎么看 浏览:678
华融证券app在哪里申购新债 浏览:556
和孩子一起学编程pdf 浏览:219
可读的文件夹怎么删除 浏览:496
qt编译器配置错了怎么改 浏览:611
佛教电视电影大全 浏览:317
李采覃男科医生是什么电影 浏览:751
周韵茹彼时曾相伴 浏览:977
如何访问ftp服务器的文件 浏览:121
java两年经验工资 浏览:363
生活中的玛丽伦理片主演名字图片 浏览:37