[問題] bitset 大小轉換

看板C_and_CPP作者 (@_@)時間9年前 (2016/05/12 23:27), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 5.2 Centos6.5 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) bitset 問題(Question): bitset<1600> 前64bit的資料轉到 bitset<64>裡面, 在裡面做XOR計算之後,把bitset<64>的資料寫回bitset<1600>前64個bit。 程式碼(Code):(請善用置底文網頁, 記得排版) bitset<1600> stateVar; bitset<64> temp; bitset<64> singleRC; for(int i=0;i<64;i++){ temp[i]=stateVar[i]; } temp ^= singleRC; for(int i=0;i<64;i++){ stateVar[i]=temp[i]; } 補充說明(Supplement): 想問cpp bitset 大小轉換的問題,我有一個1600長度的stateVar,我想把stateVar的前 64個bit的binary值放到一個64長度的temp裡面, 然後temp跟一個64bit長度的singleRC做xor,寫回temp。 之後temp再把64bit的值寫回stateVar的前64位裡面。 下面的寫法是不是有問題? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.3.2 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1463066826.A.705.html

05/13 00:18, , 1F
有甚麼問題?
05/13 00:18, 1F

05/13 13:14, , 2F
解掉了,後來才注意到bitset reference沒有^=的operator
05/13 13:14, 2F

05/13 13:15, , 3F
改用直接res[i]=res[i] ^ singleRC[i];就沒事
05/13 13:15, 3F
文章代碼(AID): #1NDA3AS5 (C_and_CPP)