[問題] 把四個字元打包成一個unsigned int

看板C_and_CPP (C/C++)作者 (法拉空氣)時間8年前 (2017/06/08 23:19), 編輯推噓3(4111)
留言16則, 7人參與, 最新討論串1/1
題目是把輸入的字元轉成二進位 並將四個字元打包成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

06/08 23:28, , 1F
pack= (a<<24)|(b<<16)|(c<<8)|d
06/08 23:28, 1F

06/08 23:28, , 2F
大概是這樣吧
06/08 23:28, 2F

06/08 23:39, , 3F
謝謝樓上!!!!!! 感激不盡 QAQ!!!!!!!!!!
06/08 23:39, 3F

06/08 23:43, , 4F
作法1 union
06/08 23:43, 4F

06/08 23:43, , 5F
作法2 uint8陣列用uint32指標去取
06/08 23:43, 5F

06/08 23:43, , 6F
作法3 位元運算一個一個移 同樓上
06/08 23:43, 6F

06/08 23:45, , 7F
另外就是...這篇我想算是作業文XD
06/08 23:45, 7F

06/08 23:47, , 8F
union +1
06/08 23:47, 8F

06/08 23:48, , 9F
> < 不好意思 因為這個題目其實很長一串 可是唯獨這段
06/08 23:48, 9F

06/08 23:49, , 10F
還想不出解QAQ
06/08 23:49, 10F

06/08 23:50, , 11F
有先看過板規不能只是要答案 所以也先講出自己以為的解
06/08 23:50, 11F

06/08 23:50, , 12F
不知道這樣是否還有違規 ~ 不好意思了 各位!
06/08 23:50, 12F

06/09 00:02, , 13F
因為他註解說只能改一段 所以就直接位元移了
06/09 00:02, 13F

06/09 11:34, , 14F
從8發想。
06/09 11:34, 14F

06/09 14:04, , 15F
板規禁止的是伸手文,不是作業文吧?
06/09 14:04, 15F

06/17 23:58, , 16F
作業
06/17 23:58, 16F
文章代碼(AID): #1PEMholp (C_and_CPP)
文章代碼(AID): #1PEMholp (C_and_CPP)