[問題] 擷取binary字串

作者: xit365025 (0xA)   2014-05-06 15:57:24
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev C++ 5.6.2
問題(Question):
讀取一個binary.txt的檔進來
分別存入變數中
假如我現在要處理第一行binary
00100001000010100000000010111110
我想把它分為
前六個bit 001000
再來五個 01000
再來五個 01010
再來五個 00000
再來五個 00010
最後六個 111110
分別這六個字串存到分別不同的變數
因為對指標不太熟
所以不知如何下手...
餵入的資料(Input):
00100001000010100000000010111110
10101101010100010000000000000100
10001101010100100000000000000100
00001000000000000000001001010110
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/aPcehjJr
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-05-06 16:02:00
你跟if也不太熟
作者: soheadsome (師大狗鼻哥)   2014-05-06 20:06:00
用bitset
作者: LPH66 (-6.2598534e+18f)   2014-05-06 20:13:00
樓上應該跳太快了...
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-05-07 16:51:00
strncpy()一下就完成的事用bitset會不會太爆笑
作者: Killercat (殺人貓™)   2014-05-07 16:57:00
strncpy的確是一個不錯的解法沒錯,不過換我的話既然有開檔的動作 那用ifstream::read來作讀取n個位元的動作我會覺得是個比較合適的作法。當然,mmap是最標準的geek寫法了... :D當然,要怎麼處理n個bit char會是幾個bit 該怎麼補0我想才是這提的醍醐味(不過這種題目叫做喇賽題)
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-05-07 18:00:00
有ifstream當然更好…
作者: soheadsome (師大狗鼻哥)   2014-05-08 03:09:00
大部份應該是用mask最快
作者: EdisonX (卡卡獸)   2014-05-08 10:05:00
看要存成字串還是整數,不同做法
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-05-08 14:38:00
以他的輸入而言,作字串處理較單純。
作者: Killercat (殺人貓™)   2014-05-08 14:42:00
這提應該是某提ACM的簡化版該ACM原始題目是binary, ascii範圍是0-255讀進來要parse成unsigned char然後用bit mask去取值算是數一數二的喇賽題 所以我還滿有印象的...
作者: yvb   2014-05-08 16:45:00
ASCII 只有 7-bit, EASCII 才是 8-bit .
作者: Killercat (殺人貓™)   2014-05-08 17:24:00
欸這樣講也對 o_O 我忘記題目編號了 之前一直不過不知道是不是因為這個原因... xd

Links booklink

Contact Us: admin [ a t ] ucptt.com