有處理過檔案串流的人應都有遇過將stream轉為byte陣列後
有時可能會需要取其中幾個byte來合成一個數值
但大部分遇到都是只要取得正數(無號數)
而我現在要做的是有正有負的數值(有號數)
2byte跟4byte的有號數取得方法我已經會了
如下:
BitConverter.ToInt16(........) // 2byte
BitConverter.ToInt32(........) // 4byte
不過不知道1byte跟3byte的有號數要如何取得
無號數的話我還可以1個byte 1個byte分別取出後
再個別做位元移動後相加起來
但有號數就不知了
不知道版上大大有沒有人做過?
--
PUMA有三寶:表哥表弟不戴套 報告有三寶:複製貼上過就好 五樓有三寶:專業肛肛愛自婊
午午有三寶:農藥優質會怕就好 台客有三寶:拎良雞掰跨三小 台灣有三寶:冥紙雞蛋丟的好
正妹有三寶:嗯嗯呵呵去洗澡 好人有三寶:駝獸宵夜修電腦 宅男有三寶:動漫載片尻到老
老師有三寶:劃線重要這會考 考試有三寶:小抄刻字同學罩 周董有三寶:唉唷不錯這個屌
房東有三寶:靠杯靠木你錢沒繳 阿扁有三寶:槍擊洗錢舉手銬 阿珍有三寶:SOGO豪宅買珠寶
邱毅有三寶:衝撞假髮被扯掉 胖子有三寶:好熱好餓沒吃飽 校園有三寶:抽煙打架幹的好
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.24.127.236
→
10/12 08:22, , 1F
10/12 08:22, 1F
→
10/13 00:38, , 2F
10/13 00:38, 2F
大大辛苦了
其實你大概跟我講一下方法給我個方向就好
不用這麼辛苦完整寫出程式碼啦XD
昨天晚上發文後
今天中午睡醒自己也有想到解法
就是用基本計概方式下去算
先將所要取得的數值取成無號數
在判斷所取byte數MSB為1或0即可知正負
若為正則直接輸出該無號數
若為負則取補數+1後再*-1輸出
目前想法是這樣
但程式剛剛才開始寫寫到一半還沒實測就是了
不過大大的無號做位元平移
再轉有號在平移回去也給了我另一個個不錯的想法
感謝!!
※ 編輯: FSRS 來自: 114.36.213.68 (10/13 01:54)
推
10/13 12:37, , 3F
10/13 12:37, 3F