[问题] 自订数据长度

楼主: abc95007 (别理我)   2020-03-03 15:03:22
想请问
C# 要如何达到自订数据长度
主要是用来做bit位移
内建最多就long 64bit
需要资料长度120bit
感觉struct或是用 array 兜出来
但抓不到想法要如何兜
作者: petercoin (彼得币)   2020-03-03 15:19:00
BitArray不知道符不符合你的使用情境?
作者: james732 (好人超)   2020-03-03 20:20:00
作者: s4300026 (s4300026)   2020-03-03 20:45:00
unsafe (误)
作者: Litfal (Litfal)   2020-03-04 14:15:00
你这需求其实蛮稀有的,图像处理通常直升16bits,32bits甚至double,处理完后再依输出10bits做round/truncate,甚至dithering
作者: ssccg (23)   2020-03-05 10:06:00
不懂为什么这样要120bit,只是24转32不是吗?30,感觉32bits够用
作者: Litfal (Litfal)   2020-03-05 14:03:00
他是要做solid而不是常用的每一点3*10bit int32int32里面多的2bits还要给下一点用纯资料处理我是会用bytes阵列和unsafe啦,用bigint还得遵守它的规则(little endian,正负号等)
作者: ssccg (23)   2020-03-06 14:20:00
我的意思就是其实也可自己取byte[n] ~ byte[n+3]丢进int32转完后再把int32拆开丢进byte[m](x) ~ byte[m+3或4](y)只要记好offset就好,不一定要到120bit为单位做吧
作者: Litfal (Litfal)   2020-03-06 14:57:00
是阿,如果做成资料流,以色素为单位,一个int16做buffer就可以处理了。但也能理解原po想用4个像素一起处理,输出4个30bits像素为一组,因为刚好是15bytes。
作者: neo5277 (I am an agent of chaos)   2020-03-07 02:30:00
好像很有趣
作者: nicetw20xx (哇爱台湾)   2020-05-10 00:35:00
我会在C用bit field,x86电脑pg最小单位好像都byte

Links booklink

Contact Us: admin [ a t ] ucptt.com