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

熱點內容
蘋果平板如何開啟隱私單個app 瀏覽:704
空調壓縮機一開就停止 瀏覽:528
如何下載虎牙app 瀏覽:847
日語年號的演算法 瀏覽:955
dev裡面的編譯日誌咋調出來 瀏覽:298
php函數引用返回 瀏覽:816
文件夾和文件夾的創建 瀏覽:259
香港加密貨幣牌照 瀏覽:838
程序員鼓勵自己的代碼 瀏覽:393
計算機網路原理pdf 瀏覽:752
吃雞國際體驗服為什麼伺服器繁忙 瀏覽:94
php中sleep 瀏覽:490
vr怎麼看視頻演算法 瀏覽:86
手機app如何申報個人所得稅零申報 瀏覽:694
如何截獲手機app連接的ip 瀏覽:331
冰箱壓縮機是否需要電容 瀏覽:346
python列表每一行數據求和 瀏覽:275
自己有一台伺服器可以玩什麼 瀏覽:657
社會學波普諾pdf 瀏覽:584
解壓做食物的小視頻 瀏覽:760