導航:首頁 > 編程語言 > 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進制字元串相關的資料

熱點內容
考勤表加密怎麼辦 瀏覽:735
arj壓縮與解壓批處理怎麼寫 瀏覽:658
php和大數據哪個好 瀏覽:930
未來最值得投資的加密貨幣 瀏覽:526
ascii碼是編譯的時候用嗎 瀏覽:781
壓縮機感應包可以通用嗎 瀏覽:412
方舟伺服器怎麼發布到搜索列表 瀏覽:270
xml防反編譯 瀏覽:241
數據傳輸加密系統技術方案 瀏覽:842
程序員沒有準備去面試 瀏覽:4
51單片機usb滑鼠 瀏覽:881
qq伺服器的ip地址查詢 瀏覽:112
java仿qq聊天 瀏覽:401
解壓的ipa重新打包 瀏覽:142
程序員那麼可愛vip版 瀏覽:240
程序員怎麼升職 瀏覽:244
圖形化命令按鈕vb 瀏覽:987
vcu盤加密怎麼設置 瀏覽:415
如何加密備份微信聊天記錄 瀏覽:529
安卓手機如何模擬鍵盤 瀏覽:932