當前位置:首頁 » 安卓系統 » android轉16進制

android轉16進制

發布時間: 2023-12-02 16:26:07

㈠ android 怎樣使用log16進制格式輸出一個字元串的編碼

供的Log類。

在程序中輸出日誌, 使用 android.util.Log 類.
該類提供了若干靜態方法
Log.v(String tag, String msg);
Log.d(String tag, String msg);
Log.i(String tag, String msg);
Log.w(String tag, String msg);
Log.e(String tag, String msg);
分別對應 Verbose, Debug, Info, Warning,Error.
tag是一個標識,可以是任意字元串,通常可以使用類名+方法名, 主要是用來在查看日誌時提供一個篩選條件.

如果要後查看日誌 請使用
adb logcat
關於adb的更多信息請查看官方網站.
當執行 adb logcat 後會以tail方式實時顯示出所有的日誌信息.
這時候我們通常需要對信息進行過濾,來顯示我們需要的信息, 這時候我們指定的 tag就派上了用場.
adb logcat -s MyAndroid:I
這時將只顯示tag為MyAndroid,級別為I或級別高於I(Warning,Error)的日誌信息.

㈡ android 字元串轉byte數組

Android 字元串、byte數組與16進制數組間的轉換

java"><spanstyle="font-family:SimSun;font-size:14px;">//字元串轉換成16進制文字列的方法
publicStringtoHex(Stringstr){
StringhexString="0123456789ABCDEF";
byte[]bytes=str.getBytes();
StringBuilderhex=newStringBuilder(bytes.length*2);
for(inti=0;i<bytes.length;i++){
hex.append(hexString.charAt((bytes[i]&0xf0)>>4));//作用同n/16
hex.append(hexString.charAt((bytes[i]&0x0f)>>0));//作用同n
hex.append('');//中間用空格隔開
}
returnhex.toString();
}

//將16進制數組轉換為字元串
publicstaticStringdecode(Stringbytes){
StringhexString="0123456789ABCDEF";
ByteArrayOutputStreambaos=newByteArrayOutputStream(bytes.length()/2);
//將每2位16進制整數組裝成一個位元組
//for(inti=0;i<bytes.length();i+=2)
//baos.write((hexString.indexOf(bytes.charAt(i))<<4|hexString.indexOf(bytes.charAt(i+1))));
//將每3位(第3位為空格)中的前2位16進制整數組裝成一個位元組
for(inti=0;i<bytes.length();i+=3){
baos.write((hexString.indexOf(bytes.charAt(i))<<4|hexString.indexOf(bytes.charAt(i+1))));
}
returnnewString(baos.toByteArray());
}</span>

詳細

㈢ android字元串轉換成16進制怎麼轉

android字元串轉換成16進制,參考如下內容:
/**
* 字元串轉換成十六進制字元串
* @param String str 待轉換的ASCII字元串
* @return String 每個Byte之間空格分隔,如: [61 6C 6B]
*/
public static String str2HexStr(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(' ');
}
return sb.toString().trim();
}

㈣ android bitmap 三原色的問題

如果帶alpha的話應該是#ffffffff(8個f),#fff是白色的簡寫方式,這個記住就行了,要深究:
#表示16進制,顏色是有red
green
blue三原色組成,那麼顏色代碼應該是#red
green
blue
每種顏色用0~255來表現,轉換成16進制就是00~ff,所以顏色本身應該是#00
00
00到#ff
ff
ff,但是為什麼有8位的呢?現在的編程系統為了方便大家編程
加入了透明度
也就是alpha值,也是0~255,所以可以使用#透明



這樣的8位來表示.如果只有3位那就是不帶透明的簡寫法

㈤ android 藍牙如何發送十六進制數據

與藍牙模塊通信最重要的地方就是數據的發送和接收,因為是底層的操作,所以更多是發送16進制數據。
進制轉換是我們程序員的必修課,屬於基本素質。這里需要的是將位元組數組轉化為16進制字元串,方法都是通用的:

[java] view plain
public static String bytesToHexString(byte[] bytes) {
String result = "";
for (int i = 0; i < bytes.length; i++) {
String hexString = Integer.toHexString(bytes[i] & 0xFF);
if (hexString.length() == 1) {
hexString = '0' + hexString;
}
result += hexString.toUpperCase();
}
return result;
}

接下來就是發送數據。
發送數據非常簡單,之前有關於藍牙編程的博文已經講到了,http://www.cnblogs.com/wenjiang/p/3200138.html,這里只講重要的一點:大容量位元組數組的發送。
我們需要發送64個位元組的數組,如果一次性發送過去,單片機那裡可能無法及時處理以致沒有任何回應,因為單片機那裡是設置了數據接收的延時時間。要想暢通的與藍牙模塊通信,考慮這個時間差非常重要。調整位元組的發送速率,就成為非常關鍵的一步。值得注意的是,數據的發送是非常快的,就是因為這樣才會導致單片機那裡無法及時處理,所以,每次發送後的延時是非常重要的。我們單片機那裡的延時是10毫秒,所以我們選擇發送完每個位元組後就延時10毫秒再發下個位元組。
[java] view plain
for (byte b : bytes) {
out.write(b);
Thread.sleep(10);
}

具體的延時時間和位元組發送速率得看單片機那裡程序的設置。
在使用InputStream的時候,必須注意,InputStream的讀取是阻塞的。這點在一般的情況下是不會影響到我們的程序,但是記住這個情況對於代碼的設計是非常重要的,尤其是在考慮用戶體驗的時候。
無參數的read()是每次只從流中讀取一個位元組,這種做法效率非常低,但是簡單,像是讀取整數值這種情況,使用read()就非常好,但如果是16進制字元串呢?使用InputStream.read(byte[] b)或者InputStream.read(byte[] b,int off,int len)方法,這樣一次就能讀取多個位元組。
如果是讀取多個位元組,我們常常使用InputStream.available()方法來獲取數據流中可讀位元組的個數。讀取本地數據的時候,該方法發揮得非常好,但如果是讀取非本地數據,就可能出現位元組遺漏的問題,像是要讀取100個位元組,可能就是90個,甚至是0個。
出現0個的情況就是單片機那邊沒有響應或者位元組還沒發送過來,這時我們就需要一個循環來保證我們能夠拿到數據:
[java] view plain
int count = 0;
while (count == 0) {
count = in.available();
}
byte[] bytes = new byte[count];
in.read(bytes);

但像是上面的90個位元組的情況就是位元組遺漏。對於這種情況,解決方法也很簡單:

[java] view plain
byte[] bytes = new byte[count];
int readCount = 0; // 已經成功讀取的位元組的個數
while (readCount < count) {
readCount += in.read(bytes, readCount, count - readCount);
}

㈥ android用代碼怎麼實現漢字和16進制數的轉化

:String strInput ="湖北武漢"; StringBuffer output = new StringBuffer(); System.out.println("\""+strInput+ "\" 的utf8編碼:")

㈦ java(android) 怎樣判斷字元串是否可以轉換成對應16進制

直接用try-catch捕獲異常,不管能不能轉換一律轉換,不能轉換的自然會拋出異常被捕獲。

要不然你就用正則表達式macthers匹配一下

熱點內容
cmd腳本執行sql腳本 發布:2025-01-23 03:46:51 瀏覽:114
搭建100人的游戲伺服器 發布:2025-01-23 03:37:43 瀏覽:516
b站台解析伺服器ip 發布:2025-01-23 03:36:12 瀏覽:202
安卓手機在哪裡看港劇 發布:2025-01-23 03:35:30 瀏覽:51
黑漫的伺服器ip 發布:2025-01-23 03:16:40 瀏覽:650
tplink無internet訪問 發布:2025-01-23 03:15:18 瀏覽:566
原神用安卓手機玩為什麼畫質那麼低 發布:2025-01-23 03:09:31 瀏覽:847
空調壓縮機是外機嗎 發布:2025-01-23 03:09:31 瀏覽:950
大學資料庫學 發布:2025-01-23 02:54:30 瀏覽:588
部隊營區監控系統錄像存儲多少天 發布:2025-01-23 02:49:26 瀏覽:523