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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2210|回復: 16
收起左側

C語言8位的數據賦值給一個只有一位的變量時單片機是怎么處理的

[復制鏈接]
ID:45973 發表于 2024-6-20 10:17 | 顯示全部樓層 |閱讀模式
請教一個問題:sbit  SDA=P2^1; ..................
unsigned char byte=0xA0 ;..................

SDA=byte &(0x80 >2);
..................
請問這時SDA的值是多少?像這種8位數據賦值給一個只有一位的變量時,單片機是怎么處理的?謝謝!
回復

使用道具 舉報

ID:277550 發表于 2024-6-20 12:48 | 顯示全部樓層
結果中,第1位是什么。
回復

使用道具 舉報

ID:16848 發表于 2024-6-21 08:07 | 顯示全部樓層
在程序中試一下就知道了。
回復

使用道具 舉報

ID:619259 發表于 2024-6-21 09:26 | 顯示全部樓層
程序中SDA=byte &(0x80 >2)   應該是SDA=byte &(0x80 >>2)吧?
回復

使用道具 舉報

ID:161164 發表于 2024-6-21 09:47 | 顯示全部樓層
假設你沒打錯
SDA=byte &(0x80 >2);
SDA=0xA0 &(1);
SDA=0;

假設你打錯了
正確的是
SDA=byte &(0x80 >>2);
SDA=0xA0 & 0x20;
SDA=0x20;
SDA=1;
回復

使用道具 舉報

ID:45973 發表于 2024-6-21 11:08 | 顯示全部樓層
cy009 發表于 2024-6-21 09:26
程序中SDA=byte &(0x80 >2)   應該是SDA=byte &(0x80 >>2)吧?

是的,我打錯了;
回復

使用道具 舉報

ID:45973 發表于 2024-6-21 11:15 | 顯示全部樓層
lkc8210 發表于 2024-6-21 09:47
假設你沒打錯
SDA=byte &(0x80 >2);
SDA=0xA0 &(1);

對的,我打錯了,是第二個;但是我有個疑問,1010 0000和0010 0000 與運算后的值是 0010 0000,這個8位的二進制數賦值給一個一位的二進制數(SDA)時,為什么是1?如果這個8位的二進制數是 0101 0000,那SDA此時的值是多少?謝謝!
回復

使用道具 舉報

ID:161164 發表于 2024-6-21 13:13 | 顯示全部樓層
franklee 發表于 2024-6-21 11:15
對的,我打錯了,是第二個;但是我有個疑問,1010 0000和0010 0000 與運算后的值是 0010 0000,這個8位的 ...

非零即1
回復

使用道具 舉報

ID:774081 發表于 2024-6-21 14:09 | 顯示全部樓層
只要賦給給sda的不是0,sda就是1?
回復

使用道具 舉報

ID:45973 發表于 2024-6-21 15:15 | 顯示全部樓層

是的,非零即1,但是是由8位數據中的哪位來決定的?
回復

使用道具 舉報

ID:45973 發表于 2024-6-21 15:17 | 顯示全部樓層
shennognshi 發表于 2024-6-21 14:09
只要賦給給sda的不是0,sda就是1?

是的,不是1就是0,但是1或者0是由什么因素決定的?8位數據中的最高位或者是最低位還是其他的因素?
回復

使用道具 舉報

ID:619259 發表于 2024-6-21 18:44 | 顯示全部樓層
franklee 發表于 2024-6-21 15:15
是的,非零即1,但是是由8位數據中的哪位來決定的?

按位與,只有兩個結果,零(0x00)和非零,非零結果都是1
回復

使用道具 舉報

ID:624769 發表于 2024-6-22 20:26 | 顯示全部樓層
當把一個 BYTE  賦值給 BIT的時候,其實是做了一個 判斷 操作。
相當于,
if(byte != 0x00)  SDA =1;
else   SDA = 0;
回復

使用道具 舉報

ID:1109793 發表于 2024-6-23 07:35 | 顯示全部樓層
franklee 發表于 2024-6-21 15:17
是的,不是1就是0,但是1或者0是由什么因素決定的?8位數據中的最高位或者是最低位還是其他的因素?

非0 就是只要不是0,都算1了,哪一位都是,不管哪一位為1都使該unsigned char非0
回復

使用道具 舉報

ID:401564 發表于 2024-6-24 09:23 | 顯示全部樓層
franklee 發表于 2024-6-21 15:17
是的,不是1就是0,但是1或者0是由什么因素決定的?8位數據中的最高位或者是最低位還是其他的因素?

在SDA=byte &(0x80 >2);中
byte &(0x80 >2) 的結果是一個邏輯值:真或者假,也就是1或者0,邏輯值就是一個位,而不是一個數字的1或者是0
回復

使用道具 舉報

ID:45973 發表于 2024-6-29 16:45 | 顯示全部樓層
謝謝各位的回復,有點明白了,再次感謝!
回復

使用道具 舉報

ID:466250 發表于 2024-6-29 17:40 | 顯示全部樓層
不規范的寫法。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲777 | 日韩精品极品 | 久久精品视频国产 | 国产午夜免费 | 欧美日韩一区二区在线观看 | 男女裸体无遮挡做爰 | 亚洲在线免费视频 | 色综合天天 | 日日夜夜精品 | 国产午夜三级一区二区三 | 五月婷婷六月丁香 | 日韩视频免费观看 | 蜜臀av性久久久久av蜜臀妖精 | 中文字幕综合 | 黄色一级视频免费看 | 久久免费高清视频 | 久久99精品久久久久久琪琪 | 日韩精品久久久久 | 97国产在线 | 黄色网在线 | 伊人精品视频 | 国产黄色片在线观看 | 91蜜桃视频 | 日韩高清精品免费观看 | 日韩视频在线免费观看 | 日韩一区在线播放 | 人人插人人爱 | 日本精品国产 | 一区视频在线 | 天天躁日日躁狠狠躁 | 四虎影院网站 | 国产成人精品一区二区三区四区 | 日韩精品免费视频 | 亚洲久久视频 | 久久久久久久久国产精品 | 99在线精品视频 | 午夜免费网站 | 日韩一级片在线观看 | 国产在线欧美 | 中文有码在线 | 国 产 黄 色 大 片 |