Robofun 機器人論壇

標題: 數值的進制轉換問題 [打印本頁]

作者: pizg    時間: 2013-4-19 17:22
標題: 數值的進制轉換問題
本帖最後由 pizg 於 2013-4-19 19:39 編輯

我們可以用Serial.print將值以各種進制格式印出來, 如下

int value = 65;
// 以各種格式列印 65
Serial.println(value);       // 印出 2 個 ASCII 字元 "65"
Serial.println(value, DEC);  // 同上
Serial.println(value, HEX);  // 印出 "41" 兩個 ASCII 字元
Serial.println(value, BIN);  // 印出 "01000001" 八個 ASCII 字元
Serial.println(value, BYTE); // 把 65 當成一個 byte 印出

那麼要如何做才能把值以各種進制格式丟給變數?
作者: babyfish0226    時間: 2013-4-19 20:43
回復 1# pizg

  1. int value = 65;
  2. String stringOne =  String(value, HEX);   
  3. Serial.println(stringOne);  
複製代碼

作者: pizg    時間: 2013-4-20 01:03
本帖最後由 pizg 於 2013-4-21 16:59 編輯

感謝babyfish0226老師的解答.

那麼如果不是 int value = 65;
換作是
char value[] = {'6' , '5'};

String value = "65";
呢?
作者: babyfish0226    時間: 2013-4-23 23:23
char value[] = {'6' , '5'};和String value = "65"; 基本上是兩個char,應該拆開分別轉換。
  1. char value[] = {'6' , '5'};
  2. int newValue=value[0];
  3. String stringOne =  String(newValue, HEX);   
  4. Serial.println(stringOne);
複製代碼

作者: pizg    時間: 2013-4-24 00:39
感謝babyfish0226老師的講解.

char value[] = {'6' , '5'}; 等同於
char value[] = "65";
我會先把char[]或String的格式轉成int,
也就是 65
然後再轉成各進制.




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2