java16進(jìn)制代碼的簡單介紹

可以把java中十進(jìn)制數(shù)用代碼直接轉(zhuǎn)為16進(jìn)制嗎?

//當(dāng)然可以:我分兩步講解,兩種方法,一個(gè)比較簡單,利用系統(tǒng)API,一個(gè)講原理稍微復(fù)雜一點(diǎn)!

湖州網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

import?java.util.Scanner;

public?class?Tohex?

{

//錄入數(shù)字用!

private?static?Scanner?sc=new?Scanner(System.in);

//容器,存放轉(zhuǎn)好的數(shù)字,也可以不用,也可以用數(shù)組!

private?static?StringBuffer?sb;

public?static?void?main(String[]?args)?

{

/*

?Integer,這個(gè)類功能很強(qiáng)大,是Java提供的,想用可以查詢一下;

?特點(diǎn)就是簡單拿來就用,新手不建議使用,搞懂進(jìn)制轉(zhuǎn)換原理以后在去使用API事半功倍!

*/

System.out.println("\n\t\t==========裝16進(jìn)制!==========\n\n系統(tǒng)API(Integer)演示:\n");

init();

}

//方法1,用系統(tǒng)API

private?static?void?init()

{

//十進(jìn)制!

int?a=125454;

//轉(zhuǎn)換過程16進(jìn)制!

String?hex=Integer.toHexString(a);

System.out.println(a+"?十六進(jìn)制=?"+hex+"\n------------------------------------\n\t\t自定義測試:\n");

input();

}

//方法2:自己動手轉(zhuǎn)換,了解轉(zhuǎn)換原理!

private?static?void?input()

{

while(true)

{

System.out.println("輸入被轉(zhuǎn)數(shù)字:\n");

int?a=sc.nextInt();

System.out.println("輸入想轉(zhuǎn)的進(jìn)制:暫時(shí)支持2,8,16進(jìn)制");

int?b=sc.nextInt();

ToHex(a,b);

}

}

//轉(zhuǎn)換過程!

private?static?void?ToHex(int?x,int?y)//a是要轉(zhuǎn)數(shù)字,b是進(jìn)制!

{

sb=new?StringBuffer();

int?a=x,b=0,c=0;

switch(y)

{

case?2:b=1;c=1;

break;

case?8:b=7;c=3;

break;

case?16:b=15;c=4;

break;

default?:break;

}

while(a0)

{

int?tem=ab;

String?s=?tem9?((char)(tem-10+'A'))+"":tem+"";

sb.append(s);

a=ac;

}

print(sb);//傳遞打印!

}

//打印!

private?static?void?print(StringBuffer?sb)

{

System.out.println("\n結(jié)果演示:"+sb.reverse()+"\n請繼續(xù)輸入測試---\n");

sb=null;

}

}

用java 寫一個(gè)10進(jìn)制轉(zhuǎn)16進(jìn)制的算法 怎么寫

算法比較復(fù)雜,建議直接使用系統(tǒng)內(nèi)置的方法

int?num?=?1000;

String?hexStr?=?Integer.toHexString(num);

直接看源碼,可能你需要的只是簡單的,需要的話我可以給你寫個(gè)簡單的算法,只支持正數(shù),應(yīng)該還不能太大的

public?static?void?main(String[]?args)?{

int?num?=?5000;

String?hexStr?=?Integer.toHexString(num);

System.out.println(hexStr);

StringBuilder?builder?=?new?StringBuilder();

int2Hex(num,?builder);

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

}

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

public?static?void?int2Hex(int?num,?StringBuilder?builder)?{

if?(num??0)?{

return;

}

if?(num??16)?{

builder.append(hexChar[num]);

return;

}

int?temp?=?num?%?16;

int?index?=?num?/?16;

builder.append(hexChar[temp]);

int2Hex(index,?builder);

}

Java 十六進(jìn)制的問題

public?class?test?{

public?static?void?main(String[]?args)?{

long?f?=?Integer.parseInt("8FFFFFF",?16);//把16進(jìn)制轉(zhuǎn)化成10進(jìn)制

long?t?=?1024*1024;

double?m?=?f/(double)t;

System.out.println(m);

}

}

我計(jì)算的結(jié)果是:143.99999904632568

我大體估算了下也是

8FFFFFF=8*16^6+15*(16^5+16^4+16^3+16^2+16+1)

=2^27+15*(2^20+2^16+2^12+2^4+1)

=2^27+(2^4-1)*(2^20+2^16+2^12+2^4+1)

=2^27+2^24+2^20+2^16+2^8+2^4-(2^20+2^16+2^12+2^4+1)

=2^27+2^24+2^19+2^15-2^12+2^8-1

=2^27+2^24+2^19+2^12*(2^3-1)+2^8-1

=2^27+2^24+2^19+2^12*7+2^8-1

t=2^27+2^24+2^19+2^12*7+2^8-1

1MB=2^10KB=2^20b

m=t/2^20=2^7+2^4+2^(-1)+2^(-5)=16*9+0.5=144.5

想不到你是一個(gè)java高手,你寫的程序我沒 有遇見過,是文件的讀寫吧?

java字符串轉(zhuǎn)16進(jìn)制

1、寫轉(zhuǎn)換函數(shù)是必須的,目前Jdk中無現(xiàn)有類。

2、在不同的字符編碼當(dāng)中,漢字的對應(yīng)的數(shù)值或者說編碼值不一樣,像GBK、Unicode肯定是不一樣的。以Java默認(rèn)的Unicode為例說明問題。

3、 一,得到字符串,

二,遍歷每個(gè)字符,用char來接收,實(shí)為int值,或直接用int也可以。

三,Integer.toHexString(每個(gè)字符對應(yīng)的int值);

四,前綴加個(gè)“0x”就可以了。

4、如果是其它類型的話,找到對應(yīng)的字符和數(shù)值對應(yīng)表就可以了。

不知可否解決問題了。

急!急!急!跪求java實(shí)現(xiàn)計(jì)算器十六進(jìn)制代碼,,,十萬火急啊

這個(gè)問題其實(shí)很簡單。你只要把string作為16進(jìn)制轉(zhuǎn)成int,運(yùn)算,得到結(jié)果轉(zhuǎn)成16進(jìn)制顯示就可以了。提供你這樣一個(gè)思路。

過程如下

String

str1

=

"FF98";//取值

textFiled1.getText();

String

str2

=

"EFA7";//取值

textFiled1.getText();

//轉(zhuǎn)化

int

a

=

convertToInt(str1);

int

b

=

convertToInt(str2);

//運(yùn)算(例如加法)

int

c

=

a+b;

String

result

=

convertToHex(c);

//顯示

textField1.setText(result);

其中

int

convertToInt(String

s){

return

Integer.parseInt(s,16);

}

String

convertToHex(int

i){

return

Integer.toHexString(i);

}

給分吧。

在java 中,十進(jìn)制轉(zhuǎn)化為十六進(jìn)制的代碼,哪位大神能幫我解釋一下流程,如下圖,特別是畫紅線的部分。

在main方法中直接調(diào)用即可,代碼如下:

public static void main(String[] args) {

HexToDec("1e6f");

}

/**

* 將十六進(jìn)制的字符串轉(zhuǎn)化為十進(jìn)制的數(shù)值

*/

public static long HexToDec(String hexStr) {

MapString, Integer hexMap = prepareDate(); // 先準(zhǔn)備對應(yīng)關(guān)系數(shù)據(jù)

int length = hexStr.length();

long result = 0L; // 保存最終的結(jié)果

for (int i = 0; i length; i++) {

result += hexMap.get(hexStr.subSequence(i, i + 1)) * Math.pow(16, length - 1 - i);

}

System.out.println("hexStr=" + hexStr + ",result=" + result);

return result;

}

/**

* 準(zhǔn)備十六進(jìn)制字符對應(yīng)關(guān)系。如("1",1)...("A",10),("B",11)

*/

private static HashMapString, Integer prepareDate() {

HashMapString, Integer hashMap = new HashMapString, Integer();

for (int i = 1; i = 9; i++) {

hashMap.put(i + "", i);

}

hashMap.put("a", 10);

hashMap.put("b", 11);

hashMap.put("c", 12);

hashMap.put("d", 13);

hashMap.put("e", 14);

hashMap.put("f", 15);

return hashMap;

}

網(wǎng)頁名稱:java16進(jìn)制代碼的簡單介紹
轉(zhuǎn)載注明:http://muchs.cn/article48/hjsiep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊面包屑導(dǎo)航、軟件開發(fā)、品牌網(wǎng)站建設(shè)網(wǎng)站改版、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)