久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11921|回復: 14
收起左側

stm32如何將一個int型數據存到char型數組中?

  [復制鏈接]
ID:300603 發表于 2018-9-11 20:39 | 顯示全部樓層 |閱讀模式
如何將一個int型數據存到char型數組中?
或者如何將int型轉化char型


回復

使用道具 舉報

ID:277550 發表于 2018-9-11 22:32 | 顯示全部樓層
假設 int i是32位
ch[0]=(i>>24)&0xff;
ch[1]=(i>>16)&0xff;
ch[2]=(i>>8)&0xff;
ch[3]=i&0xff;


~~~~~~~~~~~~~~~~

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:394504 發表于 2018-9-11 22:33 | 顯示全部樓層
用聯合體 union
{
    int a ;

}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:394504 發表于 2018-9-11 22:35 | 顯示全部樓層
union
{
     int a;
     char b1;
     char b2;
}
把數寫入 a  在讀 b1 就是 a 的高8位 b2 就是 a的 低8位

評分

參與人數 2黑幣 +30 收起 理由
NPC-1024 + 10 正解!很給力!
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:375092 發表于 2018-9-11 22:38 | 顯示全部樓層
首先int是16位的,char是8位的,要想int轉換為八位的話,如果直接賦值那么你的高八位會丟失,所以你需要賦值兩次,第一次直接賦值獲得第八位,然后int型數據右移八位,然后直接賦值,這樣你就把一個int數據用兩個char型變量保存起來了

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:155507 發表于 2018-9-11 22:59 | 顯示全部樓層
int型是四個字節大小,char 型是一個字節。

所以int型賦值給char數組需要把int型拆分。
int型拆分成四個字節,按順序保存在char型數組中就可以了。
具體代碼如下:
int i =4;
char a[100];
for(int j=0; j<sizeof(int); j++)
{
        a[j]=((i>>(8*j))&0xff);
}
其中int型的值4就保存在了char型的數組a中了。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:300603 發表于 2018-9-12 16:41 | 顯示全部樓層
angmall 發表于 2018-9-11 22:59
int型是四個字節大小,char 型是一個字節。

所以int型賦值給char數組需要把int型拆分。

我想做的是一個無線數據傳輸  用的是24L01模塊 用的是DS18B020采集溫度現在的問題是采集到的數據是float型而傳輸的數據是char型 我該怎么將這個溫度傳出去
回復

使用道具 舉報

ID:397105 發表于 2018-9-12 16:54 | 顯示全部樓層
把 int 分為高8位和低8位傳給char數組
回復

使用道具 舉報

ID:397093 發表于 2018-9-12 17:06 | 顯示全部樓層
強制轉化就行了
回復

使用道具 舉報

ID:397120 發表于 2018-9-12 17:19 | 顯示全部樓層
不是有專門的函數嗎?
回復

使用道具 舉報

ID:155507 發表于 2018-9-12 17:29 | 顯示全部樓層
qcx 發表于 2018-9-12 16:41
我想做的是一個無線數據傳輸  用的是24L01模塊 用的是DS18B020采集溫度現在的問題是采集到的數據是float ...

用c語言關鍵字union來解決。

union xxx
{
  char c[4];
  float f;
}y;

定義一個“共用體”xxx,y作為“共用體變量”,里面再定義一個char類型的變量數組c[4]和float類型的變量f。

根據union的定義,里面的變量占用同一個內存地址。所以,c[4]和f的內存地址是一樣的,說的再通俗一點,就是c[4]的4個數實際上就是f的四個字節。

回復

使用道具 舉報

ID:300603 發表于 2018-9-13 13:43 | 顯示全部樓層
shirusong 發表于 2018-9-12 17:19
不是有專門的函數嗎?

是什么 我沒找到 第一次接觸 求指點
回復

使用道具 舉報

ID:397456 發表于 2018-9-13 14:20 | 顯示全部樓層
簡單直觀理解,就是用轉換,
高級點就是用共用體
回復

使用道具 舉報

ID:397387 發表于 2018-9-13 14:34 | 顯示全部樓層
首先你要先知道你用的編譯器的int是幾個字節,如果是兩個字節可以定義兩個char型變量,第一個賦int的高8位,第二個賦int的低8位,如果是四個字節的話也類似
回復

使用道具 舉報

ID:397510 發表于 2018-9-13 15:37 | 顯示全部樓層
我也想學習,請大神指教
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 四虎影院久久 | 四虎影院在线观看av | 精品久久影院 | 区一区二在线观看 | 一级黄色录像毛片 | 九九热在线免费视频 | 国产激情网站 | www.日韩av.com | 99久久久无码国产精品 | 免费国产黄 | 久久狠狠 | 在线视频一区二区三区 | 亚洲视频一区在线观看 | 日韩欧美精品在线播放 | 日韩一区二区成人 | 日日操夜夜操天天操 | 日日操日日舔 | 精品国产乱码久久久久久久久 | 黄色一级大片在线免费看产 | 中文在线一区 | 精国产品一区二区三区四季综 | 亚洲网站在线观看 | 国产免费麻豆视频 | 国产免费高清 | 亚洲一区 中文字幕 | 久久精品视频免费看 | 日韩国产精品一区二区三区 | 999观看免费高清www | 国产日韩精品一区二区三区 | 午夜影院中文字幕 | 一级视频在线免费观看 | 亚洲 中文 欧美 日韩 在线观看 | 97久久久久久 | 精品国产乱码久久久久久牛牛 | 激情五月婷婷综合 | 欧美精品一区三区 | 特黄av| 国产欧美精品一区二区色综合 | 99久久精品国产一区二区三区 | 台湾a级理论片在线观看 | 中文精品视频 |