Re: [閒聊] 程式大師請進已回收

看板Marginalman作者 (我獨自升級 超級好看!)時間1年前 (2024/01/30 18:02), 1年前編輯推噓2(2016)
留言18則, 4人參與, 1年前最新討論串35/38 (看更多)
剛剛De了一個Bug 就錯誤的case存不下來 後來發現他是用一個char來存的 具體寫法就是 0000 0001 << f 去推 f 是多少就代表哪個case有問題 例如第二個case有問題 就 0000 0001 << 1 = 0000 0010 結果現在因為測項越來越多 一共有9個 所以 f = 8 的情況 會推成 0000 0000 就 1 被推到溢位了 所以會被當成 第1(0)個case 我原本是想直接改成int來存 就哪個case有問題就存多少 可是感覺不太好 阿 有什麼推薦的寫法嗎 -- 人美 心善 東雪蓮 https://i.imgur.com/OCxPqNJ.gif
陽光 開朗 小罕見 https://i.imgur.com/N440CGH.gif
https://i.imgur.com/M8TeTMj.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.91.73 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1706608978.A.D07.html ※ 編輯: Wardyal (60.248.91.73 臺灣), 01/30/2024 18:04:26

01/30 18:12, 1年前 , 1F
錯誤會同時發生嗎 不會的話他這個寫法很沒意義欸
01/30 18:12, 1F

01/30 18:13, 1年前 , 2F
不會 只會發生一個
01/30 18:13, 2F

01/30 18:14, 1年前 , 3F
還好吧 他這樣用4byte就可以存了 還是有更好的方法
01/30 18:14, 3F

01/30 18:15, 1年前 , 4F
繼續用char啊 只是不需要做這種第幾個bit 當int用
01/30 18:15, 4F

01/30 18:16, 1年前 , 5F
這做法沒有多重錯誤就是浪費空間
01/30 18:16, 5F

01/30 18:17, 1年前 , 6F
只是你要確定不會影響到別的地方欸
01/30 18:17, 6F

01/30 18:22, 1年前 , 7F
應該不會吧
01/30 18:22, 7F

01/30 18:22, 1年前 , 8F
可是我第9個case要怎麼判斷
01/30 18:22, 8F

01/30 18:23, 1年前 , 9F
推8bit就變回0000 0000
01/30 18:23, 9F

01/30 18:23, 1年前 , 10F
多寫一個判斷當f>=8就推2嗎
01/30 18:23, 10F

01/30 18:24, 1年前 , 11F
不是啊 就直接存數字==
01/30 18:24, 11F

01/30 18:25, 1年前 , 12F
就像你講的用int 但不需要那麼大空間
01/30 18:25, 12F

01/30 18:25, 1年前 , 13F
char本質不也是一個byte的數字而已
01/30 18:25, 13F

01/30 18:36, 1年前 , 14F
只會發生一個是在搞笑喔
01/30 18:36, 14F

01/30 19:41, 1年前 , 15F
通常是複數發生才這樣存 如果不改這個邏輯 然後已經塞不
01/30 19:41, 15F

01/30 19:41, 1年前 , 16F
下了 那就共用 比如說bit7同時代表A或B錯誤 bit7為1的時
01/30 19:41, 16F

01/30 19:41, 1年前 , 17F
候 你要去另一個變數確認是A錯誤還是B錯誤
01/30 19:41, 17F

01/31 09:35, 1年前 , 18F
懂了 感恩
01/31 09:35, 18F
文章代碼(AID): #1bkCbIq7 (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1bkCbIq7 (Marginalman)