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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 12124|回復(fù): 14
收起左側(cè)

stm32如何將一個(gè)int型數(shù)據(jù)存到char型數(shù)組中?

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


回復(fù)

使用道具 舉報(bào)

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


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

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

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

}

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

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

評(píng)分

參與人數(shù) 2黑幣 +30 收起 理由
NPC-1024 + 10 正解!很給力!
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

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

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

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

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

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

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

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

我想做的是一個(gè)無(wú)線數(shù)據(jù)傳輸  用的是24L01模塊 用的是DS18B020采集溫度現(xiàn)在的問(wèn)題是采集到的數(shù)據(jù)是float型而傳輸?shù)臄?shù)據(jù)是char型 我該怎么將這個(gè)溫度傳出去
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:397093 發(fā)表于 2018-9-12 17:06 | 顯示全部樓層
強(qiáng)制轉(zhuǎn)化就行了
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:155507 發(fā)表于 2018-9-12 17:29 | 顯示全部樓層
qcx 發(fā)表于 2018-9-12 16:41
我想做的是一個(gè)無(wú)線數(shù)據(jù)傳輸  用的是24L01模塊 用的是DS18B020采集溫度現(xiàn)在的問(wèn)題是采集到的數(shù)據(jù)是float ...

用c語(yǔ)言關(guān)鍵字union來(lái)解決。

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

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

根據(jù)union的定義,里面的變量占用同一個(gè)內(nèi)存地址。所以,c[4]和f的內(nèi)存地址是一樣的,說(shuō)的再通俗一點(diǎn),就是c[4]的4個(gè)數(shù)實(shí)際上就是f的四個(gè)字節(jié)。

回復(fù)

使用道具 舉報(bào)

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

是什么 我沒(méi)找到 第一次接觸 求指點(diǎn)
回復(fù)

使用道具 舉報(bào)

ID:397456 發(fā)表于 2018-9-13 14:20 | 顯示全部樓層
簡(jiǎn)單直觀理解,就是用轉(zhuǎn)換,
高級(jí)點(diǎn)就是用共用體
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:397510 發(fā)表于 2018-9-13 15:37 | 顯示全部樓層
我也想學(xué)習(xí),請(qǐng)大神指教
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91久久精品 | 国产精品久久久久久久久久免费看 | 超碰伊人久久 | 一级做a| japan21xxxxhd美女| 免费中文字幕 | 国产精品久久久久久久久久久久午夜片 | 欧美视频一区二区三区 | 国产一区二区在线视频 | 国产一级片免费看 | 亚洲成人精品一区 | 成人欧美在线 | 亚洲免费视频网站 | 免费午夜视频 | 婷婷激情五月网 | 在线āv视频| 国产免费一区二区三区免费视频 | www97影院| 国产成人一区二 | 欧美性高潮 | 日韩不卡视频在线 | 91一区二区三区在线观看 | 久久久精品网站 | 色久电影| 中文字幕成人av | 免费的色网站 | 亚洲 欧美 综合 | 午夜一区 | 免费在线观看成人 | 日韩精品一区二区三区在线观看 | 欧美男人天堂 | 国产成人精品久久二区二区91 | 亚洲精品1区 | 热99精品视频 | 日本精品久久久久久久 | 国产欧美在线 | 欧洲国产精品视频 | 日本三级电影在线免费观看 | 日韩电影免费观看中文字幕 | 日韩精品无码一区二区三区 | 欧美日韩国产中文字幕 |