Re: [問題] bitset的使用方式
看板C_and_CPP (C/C++)作者applecool (noOneKnows)時間14年前 (2012/01/06 00:58)推噓1(1推 0噓 15→)留言16則, 4人參與討論串2/2 (看更多)
const char *s = "00_00_1"; // 多謝版友提醒
unsigned int res = 0;
while(char t = *s++)
{
// char 00110000 : '0', 00110001 : '1'
if(t == '0' || t == '1') res = (res << 1) | (t & 1);
}
想請教一個問題,本來我的理解是 t 變數應該是在 while 結束之後,
就不見了,但是好像有遇過編譯器 while 結束後 t 還存在?
(還是我又搞錯了??? XD)
可是 C++ 應該有規定這個 t 的生命週期吧?
感恩
※ 引述《bwtalk (是黑是白)》之銘言:
: 開發平台(Platform): DEV C++
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: 有用到bitset
: 問題(Question):
: 有點崩潰..
: 由於需要將2進位字串換直接轉成10進位的整數
: 所以最後選擇用bitset
: 參考了文章#1BvInMXs 以及james732大的推文
: 但對bitset的還是不了解,一直出現bug..
: 餵入的資料(Input):
: 00_0000_10
: 預期的正確結果(Expected Output):
: 2
: 錯誤結果(Wrong Output):
: 有時候會出現↓
: This application has required the Runtime to terminate it in an unusual way.
: 即使沒出現 答案也是錯的 囧
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: http://ideone.com/yIWoC
: 補充說明(Supplement):
: 這個程式是要將二進位字串轉成10進位整數
: 其中輸入的資料中,底線'_'要忽略掉,ex 00_0001_00 要輸出4
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.137.131
→
01/06 00:59, , 1F
01/06 00:59, 1F
推
01/06 01:00, , 2F
01/06 01:00, 2F
→
01/06 01:00, , 3F
01/06 01:00, 3F
→
01/06 01:02, , 4F
01/06 01:02, 4F
→
01/06 01:03, , 5F
01/06 01:03, 5F
→
01/06 01:04, , 6F
01/06 01:04, 6F
→
01/06 01:11, , 7F
01/06 01:11, 7F
→
01/06 01:13, , 8F
01/06 01:13, 8F
→
01/06 01:27, , 9F
01/06 01:27, 9F
→
01/06 01:28, , 10F
01/06 01:28, 10F
→
01/06 01:31, , 11F
01/06 01:31, 11F
→
01/06 01:32, , 12F
01/06 01:32, 12F
→
01/06 01:38, , 13F
01/06 01:38, 13F
→
01/06 01:41, , 14F
01/06 01:41, 14F
→
01/06 01:42, , 15F
01/06 01:42, 15F
→
01/06 01:45, , 16F
01/06 01:45, 16F
※ 編輯: applecool 來自: 123.110.143.10 (01/09 22:20)
※ 編輯: applecool 來自: 123.110.143.10 (01/09 22:23)
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章