[问题] 撷取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