导航:首页 > 编程语言 > java操作16进制

java操作16进制

发布时间:2023-05-14 01:01:05

A. java 二进制转换16进制

import java.util.Scanner;
public class Binary2Hex {
private static String hexStr = "0123456789ABCDEF";
/**
*
* @param bytes
* @return 将二进制转换为十六进制字符输出
*/
public static String BinaryToHexString(byte[] bytes){
String result = "";
String hex = "";
for(int i=0;i<bytes.length;i++){
//字节高4位
hex = String.valueOf(hexStr.charAt((bytes[i]&0xF0)>>4));
//字节低4位
hex += String.valueOf(hexStr.charAt(bytes[i]&0x0F));
result +=hex;
}
return result;
}

public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
boolean flag = true;
while (flag) {
System.out.print("请输入一个二进制字符串:");
String str = sca.next();
System.out.println();
System.out.println("您输入的是字符串的十六进制为:"+BinaryToHexString(str.getBytes()));
System.out.print("是否继续转化(如果不继续请输入“exit”,继续的话输入任意字符):");
String _str = sca.next();
if (_str.equalsIgnoreCase("exit")) {
flag = false;
}
}
}
}

B. 使用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
*/
}
}

C. java字符串转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());
这样? 不过我怎么转都得不到你要说的值专。。属。

D. 可以把java中十进制数用代码直接转为16进制吗

//当然可以:我分两步讲解,两种方法,一个比较简单,利用系统API,一个讲原理稍微复杂一点!
importjava.util.Scanner;
publicclassTohex
{
//录入数字用!
privatestaticScannersc=newScanner(System.in);

//容器,存放转好的数字,也可以不用,也可以用数组!
privatestaticStringBuffersb;

publicstaticvoidmain(String[]args)
{
/*
Integer,这个类功能很强大,是Java提供的,想用可以查询一下;
特点就是简单拿来就用,新手不建议使用,搞懂进制转换原理以后在去使用API事半功倍!
*/
System.out.println(" ==========装16进制!========== 系统API(Integer)演示: ");
init();
}
//方法1,用系统API
privatestaticvoidinit()
{
//十进制!
inta=125454;
//转换过程16进制!
Stringhex=Integer.toHexString(a);
System.out.println(a+"十六进制="+hex+" ------------------------------------ 自定义测试: ");

input();
}
//方法2:自己动手转换,了解转换原理!
privatestaticvoidinput()
{
while(true)
{
System.out.println("输入被转数字: ");
inta=sc.nextInt();
System.out.println("输入想转的进制:暂时支持2,8,16进制");
intb=sc.nextInt();
ToHex(a,b);
}
}
//转换过程!
privatestaticvoidToHex(intx,inty)//a是要转数字,b是进制!
{
sb=newStringBuffer();
inta=x,b=0,c=0;
switch(y)
{
case2:b=1;c=1;
break;
case8:b=7;c=3;
break;
case16:b=15;c=4;
break;
default:break;
}
while(a>0)
{
inttem=a&b;
Strings=tem>9?((char)(tem-10+'A'))+"":tem+"";
sb.append(s);
a=a>>>c;
}

print(sb);//传递打印!
}
//打印!
privatestaticvoidprint(StringBuffersb)
{
System.out.println(" 结果演示:"+sb.reverse()+" 请继续输入测试--->> ");
sb=null;
}
}

E. 用JAVA栈的方法实现十进制转十六进制

看到这道题目想到了三个方法,依次给你列出(栈的方式,递归,数组)
栈的方式:
//思路:将十进制数(number)除以R取余,让取得的余数(number Mod R )进栈,让十进制数变为
number/R,重复上述过程,直到number等于0为止,然后依次从栈中取出数据即为所求,直到栈为空,下面是实现的代码:
#include<stdio.h>
#include<stdlib.h>
#define MAX_SIZE 80
typedef struct
{//栈的数据结构,采用数组
char data[MAX_SIZE];
int top;
}stack;
int isfull(stack s)
{//判断栈是否已满
return (++s.top==MAX_SIZE);
}
int isempty(stack s)
{//判断栈为空
return s.top==-1;
}
void push(stack * s,char in_data)
{//进栈
if(isfull(*s))
{
printf("栈已满,不能执行操作!\n");
exit(1);
}
s->data[++s->top]=in_data;
}
void pop(stack *s)
{//出栈
if(isempty(*s))
{
printf("栈已空,不能执行操作!\n");
exit(1);
}
s->top--;
}
char top_value(stack *s)
{//取栈顶元素
if(isempty(*s))
{
printf("栈已空,不能执行操作!\n");
exit(1);
}
return s->data[s->top];
}
int main(int argc,char** argv)
{
int number;
stack result;
result.top=-1;
int r_range;
printf("输入转换的数据和对应的进制:");
scanf("%d%d",&number,&r_range);
printf("%d对应的%d进制为:",number,r_range);
while(number!=0)
{
char input;
if(number%r_range>=10)
input=((number%r_range)-10)+'a';
else
input=((number%r_range)+'0');
push(&result,input);
number=number/r_range;
}
while(!isempty(result))
{
putchar(top_value(&result));
pop(&result);
}
return 0;
}
====================================================================
递归的方式:定义一个输出字符串,让十进制数(number)除以要转换的进制R 若结果不为0,则继续执行前述操作,直到得到除的结果为零,此时number除以R取其余数,将其结果(number Mod R)映射到指定的输出字符数组中下标输出即为结果(描述的不是很好,你看代码吧)
//用这种方法也比较可以
#include<stdio.h>
void ten_to_any(int number,int range_t)
{//递归实现
char text[]="0123456789abcdef";
int k=number/range_t;
if(k)
ten_to_any(k,range_t);
putchar(text[number%range_t]);
}
int main()
{

int number,r_range;
while(1)
{
printf("\n输入转换的数据,和对应进制:");
scanf("%d%d",&number,&r_range);
if(r_range>16||r_range<2)
{
printf("超出了范围!");
break;
}
printf("%d对应的%d进制为:",number,r_range);
ten_to_any(number,r_range);
}
return 0;
}
//采用数组的形式
这是我上次回答别人的
用一个字符串保存转换的结果(str[80])假设十进制数为number,转换的进制为digits,则将numbers%digits(根据余数的情况做相应处理)结果保存在字符串str中,将numbers变为numbers/digits;直到numbers为零。得到的结果为逆序,需要将其倒转,倒转后即为所求。
//-----------c语言实现10进制转2~16进制
#include<stdio.h>
#include<string.h>
void TentoAny(int number,char *str,int digits)
{
int i=0;
if(digits>16||digits<2)//非2~16进制则直接退出
return ;
while(number)
{
if(number%digits>=10)
{
str[i++]='A'+(number%digits-10);
}
else
{
str[i++]=number%digits+'0';
}
}
str[i]='\0';
strrev(str);//strrev函数定义在string.h中的,是对字符串做逆序处理的函数
//这里需要逆序的原因是因为得到的结果为该进制的逆序
}

F. java中怎么将10进制转化成十六进制

Scanner sc = new Scanner(System.in);
System.out.println("请出入一个十进制数");
int x = sc.nextInt();
System.out.println(x+"的十六进制结果是:"+Integer.toHexString(x));

G. 怎么用java语句从键盘上输入一个十六进制数

你输入就是了,接收要按String接收、再Interget.parseInt( num, 16 )转换一下——处理一下异常。

H. java 10进制转16进制

移位的办法你不知道怎么写是么?

String toHexString (int num)
{
char [] hexStr = new char [8] ;
for (int i = 0 ; i < 4 ; i ++)
{
// 取低 4 bits
hexStr [7 - i] = getHexChar (num & 0x0F) ;
// 右移4 Bits ;
num = num >> 4 ;
}

return new String (hexStr) ;
}

char getHexChar1 (int num)
{
if (num < 0 || num >= 16)
num = num % 16 ;

if (num < 10)
return '0' + num ;
else
return 'A' + num - 10 ;
}

static char [] HEX_DIGITS_LIST = new char [] {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'} ;
char getHexChar2 (int num)
{
if (num < 0 || num >= 16)
num = num % 16 ;

return HEX_DIGITS_LIST [num] ;
}

char getHexChar3 (int num)
{
if (num < 0 || num >= 16)
num = num % 16 ;

return Character.forDigit (num) ;
}

I. 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操作16进制相关的资料

热点内容
苹果6s软解是真的吗 浏览:310
c语言代码量大 浏览:874
最新网络卫星导航如何使用 浏览:425
以下哪些文件属于图像文件 浏览:774
zycommentjs 浏览:414
确认全血细胞减少看哪些数据 浏览:265
文件有哪些要求 浏览:484
cad打开时会出现两个文件 浏览:65
什么是转基因网站 浏览:48
手柄设备有问题代码43 浏览:921
怎么他么怎么又网络了 浏览:649
java会出现内存泄露么 浏览:617
苹果4s锁屏后怎么还显示歌曲 浏览:207
鸿蒙系统文件管理哪些可以删除 浏览:550
ubuntuqt创建工程没有配置文件 浏览:126
网站登录变成其他网站怎么处理 浏览:202
ug数控编程学校有哪些 浏览:203
java图片上传显示 浏览:402
ppt的文件名后缀 浏览:902
ug编程软件下载到哪个盘 浏览:359

友情链接