[問題] 自訂數據長度

作者: 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