导航:首页 > 编程语言 > java10进制转16进制字符串

java10进制转16进制字符串

发布时间:2023-02-09 18:25:53

java,从键盘输入一个十进制的数,转换成十六进制,怎么做

String hexS = Integer.toHexString(10); 输出hexS内容为a 还有 如果非得用判断语句写,请用switch 如果y小于10是不用处理的 直接拼接输出即可 大于10的可以考虑处理 另外.. printf为格式化输出 如果只是单纯想看看内容 用println就行了 里边直接拼接sa+y即可 y可以定义成String类型或者Object类型.. 即可省去类型转换 System.out.printf("%d","%c ",sa,'F');} 这种时候输出的'F'尽量不要用单引号了.. 单引号和数值是可以互转的 刚开始比较容易混乱 统一使用" "这种字符串格式比较容易理解 推荐写成如下 int yi=n%16; String y = null; switch (yi) { case 10: y = "a"; break; case 11: y = "b"; break; case 12: y = "c"; break; case 13: y = "d"; break; case 14: y = "e"; break; case 15: y = "f"; break; default: y = yi+""; } System.out.println(sa+y);

⑵ 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 如何将10进制的int 转成16进制的int

使用java.math.BigInteger,

构造函数BigInteger(String val, int radix) :将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger。

new BigInteger("", 16).toString()即可

⑷ 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) ;
}

⑸ 用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中的,是对字符串做逆序处理的函数
//这里需要逆序的原因是因为得到的结果为该进制的逆序
}

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

1,可以手动计算先将10进制的数转为二进制,二进制再转为16进制


2,我们可以直接使用java api提供的方法直接转换

int num = 14;

String hexNum = Integer.toHexString(num);

hexNum即为16进制的数

3,如图

⑺ java的十进制怎么转为十六进制

查jdk文档,可以发现在long类里面有这些方法
static String toBinaryString(long i)
以二进制无符号整数形式返回 long 参数的字符串表示形式。
static String toHexString(long i)
以十六进制无符号整数形式返回 long 参数的字符串表示形式。
static String toOctalString(long i)
以八进制无符号整数形式返回 long 参数的字符串表示形式。
如果你自己要写一个程序 实现这个功能,
就是将数字除16取余。。。

⑻ 用java 写一个10进制转16进制的算法 怎么写

算法比较复杂,建议直接使用系统内置的方法

intnum=1000;

StringhexStr=Integer.toHexString(num);

直接看源码,可能你需要的只是简单的,需要的话我可以给你写个简单的算法,只支持正数,应该还不能太大的

publicstaticvoidmain(String[]args){

intnum=5000;

StringhexStr=Integer.toHexString(num);

System.out.println(hexStr);

StringBuilderbuilder=newStringBuilder();

int2Hex(num,builder);

System.out.println(builder.reverse());

}

staticchar[]hexChar={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};

publicstaticvoidint2Hex(intnum,StringBuilderbuilder){

if(num<0){
return;
}

if(num<16){
builder.append(hexChar[num]);
return;
}

inttemp=num%16;

intindex=num/16;

builder.append(hexChar[temp]);

int2Hex(index,builder);


}

⑼ java中怎么将十进制转换为十六进制

用除商取余法
用十进制数除以16 记录下商和余数
然后继续用商去除以16记录下商和余数,直到商为0
最后将余数逆序排列就可以了
比如十进制数33转为十六进制
33/16=2 余1
2/16=0 余2
结果就是0x 21(十六进制以0x开头)

⑽ java怎样将已知的10进制数转换为16进制

import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请出入一个十进制数");
int x = sc.nextInt();
System.out.println(x+"的十六进制结果是:"+Integer.toHexString(x));
}
}

阅读全文

与java10进制转16进制字符串相关的资料

热点内容
ug如何启动服务器 浏览:444
csgo防抖动命令 浏览:960
如何弄到手机app页面的源码 浏览:441
androidwindows7破解版 浏览:363
解压视频动画怎么拍 浏览:748
连涨启动源码 浏览:163
小奔运动app网络异常怎么回事 浏览:449
php开启压缩 浏览:305
服务器主机如何设置启动 浏览:284
linux配置网络命令 浏览:776
一张照片怎么制作视频app 浏览:910
pythonweb和php 浏览:978
电脑服务器地址ip地址 浏览:823
对矩阵压缩是为了 浏览:913
setfacl命令 浏览:175
linux子系统中断 浏览:343
linux查看进程ps 浏览:227
知识库系统php 浏览:625
小波变换压缩图像python 浏览:154
阿里巴巴程序员怎么月入百万 浏览:175