看板 C_and_CPP 關於我們 聯絡資訊
看code時發現 uint8_t data[9]; data[5] = val & 0xff 不懂為什麼要這麼做 0xff 不就等於 11111111 var和0xff 聯集& 做位元邏輯運算 還是var本身自己阿 請問有人可以提點 關鍵字 讓我知道原因嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.35.157 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1523865411.A.9C0.html
shadow0326: ooxx 04/16 16:05
MOONRAKER: oxff是什麼東東 都民國一百多年了還有人0 o混著用? 04/16 16:06
taies: &跟|傻傻分不清楚 04/16 16:06
Lipraxde: oxff 是什麼東西,變數嗎? 04/16 16:07
MOONRAKER: 不是30年前那些打字習慣超爛的古董才會嗎 04/16 16:08
抱歉 是我搞錯0跟o ※ 編輯: x246libra (61.220.35.157), 04/16/2018 16:10:24
MOONRAKER: 好改正了不錯 04/16 16:12
x246libra: 所以 這麼作 有什麼功能嗎? 04/16 16:12
MOONRAKER: 下一個問題 你確定val跟data[5]一樣寬嗎 04/16 16:12
long val; 一樣的大小 ※ 編輯: x246libra (61.220.35.157), 04/16/2018 16:23:00
jerryh001: 這樣就是保留最後8bits 04/16 16:23
Schottky: long 跟 uint8 一樣大小我也是醉了 04/16 16:25
Schottky: 就是把 val 的高位剪掉清成 0,只留最低 byte 04/16 16:26
james732: 哪個平台的long跟uint8_t一樣大? 04/16 16:35
Lipraxde: typedef uint8_t long; 自己定XD 04/16 16:43
有查過 https://openhome.cc/Gossip/CGossip/Datatype.html int 與 long 為 8 位元組 有錯請跟我說 謝謝 ※ 編輯: x246libra (61.220.35.157), 04/16/2018 16:56:57
cutekid: val & 0xff ← val % 256 04/16 16:55
Lipraxde: 他sizeof(int)的輸出是4捏,而且位元組跟位元是不一樣 04/16 17:05
Lipraxde: 的東西 04/16 17:05
tjjh89017: uint8_t是8bits,不是8byte 04/16 17:06
MOONRAKER: XD long跟uint8_t一樣大 笑死 提名本年度最好笑 04/16 17:16
原來uint8_t 是8bit 謝謝指正 那long 跟 uint8_t不同大小 目的是 val 的高位剪掉清成 0,只留最低 byte 這樣的功能? ※ 編輯: x246libra (61.220.35.157), 04/16/2018 17:19:46
Schottky: 笑到肚子好痛 04/16 17:31
Schottky: 既然查到網頁,可以照著上面的方法跑一次啊 04/16 17:31
Schottky: 不同平台的結果會不一樣喔! 04/16 17:32
MOONRAKER: 把超過的部份剪掉 不過沒錯 不同平台結果可能有差異 04/16 18:11
Schottky: 不過再怎麼有差異也沒聽過long是1或2 bytes 的就是了 04/16 18:32
shadow0326: 因為那違反標準 標準規定sizeof(long) >= 32bits 04/16 18:34
chuegou: uint32表示 哇靠比我還長 04/16 20:14
TitanEric: mask 04/16 21:34
x246libra: 請問樓上 mask是什麼意思 要用什麼關鍵字查詢相關資料 04/17 00:03
james732: "bit mask"用這個google有一些網頁可以看 04/17 00:13
Bencrie: 遮罩 04/17 02:02
TitanEric: 感謝樓上們解釋 04/17 09:31
Leadgen: 作Mask 04/17 11:17
KanzakiHAria: 推 chuegou: uint32表示 哇靠比我還長 XDDDDD 04/17 11:41
kikiqqp: 單純當遮罩用,另外不同平台實作位元會有差異,看規格書 04/17 12:13
kikiqqp: typedef unsigned char uint8_t; 04/17 12:13
kikiqqp: typedef unsigned short uint16_t; 04/17 12:14
kikiqqp: typedef unsigned long uint32_t; 04/17 12:14
x246libra: 回來翻到以前的發問 怎麼問這麼笨的問題... 10/01 11:01
x246libra: uint8 居然搞錯意思了QQ 10/01 11:01