看板 C_and_CPP 關於我們 聯絡資訊
題目是把輸入的字元轉成二進位 並將四個字元打包成unsigned int 再轉二進位 之前寫過兩個字元打包的 寫法大致是這樣 unsigned int packCharacters(char a, char b) { unsigned int pack; pack=a; pack <<8; pack |=b; return pack; } 但這次問題是要四個字元包成一個 試過用同樣方法設定pack1 , pack2 ... 但是無法成功 而且寫法已經設定為 unsigned int packCharacters(char a, char b, char c, chaar d) { unsigned int pack; pack= //只能修改此段程式 return pack; } 因為進度確實跟不上班上的大家 老師臉書也不回應 同學作業都是抄來抄去沒人懂 想請問各位可以指點迷津嗎? 先謝謝大家了!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.59.206 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1496935154.A.BF3.html
libertyleave: pack= (a<<24)|(b<<16)|(c<<8)|d 06/08 23:28
libertyleave: 大概是這樣吧 06/08 23:28
faradair: 謝謝樓上!!!!!! 感激不盡 QAQ!!!!!!!!!! 06/08 23:39
chuegou: 作法1 union 06/08 23:43
chuegou: 作法2 uint8陣列用uint32指標去取 06/08 23:43
chuegou: 作法3 位元運算一個一個移 同樓上 06/08 23:43
chuegou: 另外就是...這篇我想算是作業文XD 06/08 23:45
boss0405: union +1 06/08 23:47
faradair: > < 不好意思 因為這個題目其實很長一串 可是唯獨這段 06/08 23:48
faradair: 還想不出解QAQ 06/08 23:49
faradair: 有先看過板規不能只是要答案 所以也先講出自己以為的解 06/08 23:50
faradair: 不知道這樣是否還有違規 ~ 不好意思了 各位! 06/08 23:50
libertyleave: 因為他註解說只能改一段 所以就直接位元移了 06/09 00:02
pttworld: 從8發想。 06/09 11:34
a27417332: 板規禁止的是伸手文,不是作業文吧? 06/09 14:04
pttuser: 作業 06/17 23:58