看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
Caesar08: 有甚麼問題? 05/13 00:18
soniccol: 解掉了,後來才注意到bitset reference沒有^=的operator 05/13 13:14
soniccol: 改用直接res[i]=res[i] ^ singleRC[i];就沒事 05/13 13:15