欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2338|回復: 7
收起左側

請教C語言printf格式

[復制鏈接]
ID:283954 發表于 2022-5-26 03:42 | 顯示全部樓層 |閱讀模式
這是我抄來的C代碼,編譯后跑出來顯示的字符是:(Buffer里面的)

90306E

我需要輸出的是90的HEX值,30的HEX值,6E的HEX值(1個byte,90H,30H,6EH), 而不是字符,該怎么做呢?
另外想知道(RxBuffer[ i])是一個字節(90H)還是兩個字節(字符9和0)?我想要做程序判斷用。


for ( i = 0; i < len; i ++ ){
switch (i)
{
case 1:
   printf("%02X",(UINT16)(RxBuffer[ i]));
  //if ((UINT16)RxBuffer[ i] == 0xC0) {
  //haha = 1;
  //}
   break;
case 2:
   printf("%02X",(UINT16)(RxBuffer[ i]));
   break;
case 3:
    printf("%02X",(UINT16)(RxBuffer[ i]) );
   break;
}
}



回復

使用道具 舉報

ID:824490 發表于 2022-5-26 09:10 | 顯示全部樓層
如果,90是十進制,那90的16進制=90/16<<4|90%16=0x5A

RxBuffer[ i])是一個字節(90H)還是兩個字節(字符9和0)?
就看你是如何定義RxBuffer[]這個數組的了。
回復

使用道具 舉報

ID:277550 發表于 2022-5-26 10:22 | 顯示全部樓層
不是字符,就是 ungsigned char 類型,除符號、字母、數字很,很多是不可見的
回復

使用道具 舉報

ID:161164 發表于 2022-5-26 10:43 來自觸屏版 | 顯示全部樓層
printf就是把所有數據轉換為字符送到串口,想直接傳數值就用putchar

評分

參與人數 1黑幣 +15 收起 理由
dalaoshi + 15 很給力!

查看全部評分

回復

使用道具 舉報

ID:94031 發表于 2022-5-26 10:45 | 顯示全部樓層
用 printf 就是要把 RxBuffer 轉變成字符發送,要發送HEX值直接串口發送就行,不要用 printf 。

評分

參與人數 1黑幣 +15 收起 理由
dalaoshi + 15 很給力!

查看全部評分

回復

使用道具 舉報

ID:283954 發表于 2022-5-26 16:19 | 顯示全部樓層
謝謝各位,試驗了一晚的問題,一下就解決了,用putchar((UINT16)(RxBuffer[i]) )出來的就是90H了。

另外我需要作字節判斷,i=1時,如果((UINT16)RxBuffer[i]) 是C0H, 就設haha=1, 等到i=3時,必須haha是0才可輸出字符,若不是0,則重置haha=0,
編譯時無錯誤,跑的時候,全部都是只有2個字節,i=3的那個都沒有輸出,邏輯沒問題,應該是c語言表達字符不對。

switch:

CASE 1:
if (((UINT16)RxBuffer[i]) == 0xC0)  {
   haha = 1;
}               

                                                          
CASE 3:
if (haha == 0) {
  putchar((UINT16)(RxBuffer[i]) );
} else {
  haha == 0;
}

C語言還未入門,問題很幼稚,大家別笑哦。
回復

使用道具 舉報

ID:883242 發表于 2022-5-26 21:46 | 顯示全部樓層
dalaoshi 發表于 2022-5-26 16:19
謝謝各位,試驗了一晚的問題,一下就解決了,用putchar((UINT16)(RxBuffer) )出來的就是90H了。

另外我 ...

haha == 0;
這么明顯的錯誤看不出來嗎?

評分

參與人數 1黑幣 +15 收起 理由
dalaoshi + 15 很給力!

查看全部評分

回復

使用道具 舉報

ID:283954 發表于 2022-5-26 22:43 | 顯示全部樓層
Hephaestus 發表于 2022-5-26 21:46
haha == 0;
這么明顯的錯誤看不出來嗎?

就是還沒入門嘛! 終于搞懂==是用來比較的,=是用來賦值的。

這是IC廠家寫的例子,非常復雜,有USB驅動,完全看不懂,但修改一下適合自己用還是可以的,也被迫學了幾個C代碼,雖然撞到門檻,也算是入門了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表