[問題]檔案串流的3byte的有號數取得方法

看板C_Sharp作者時間11年前 (2012/10/11 21:13), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
有處理過檔案串流的人應都有遇過將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
自己做sign extension之後再套用原本的轉換函數如何?
10/12 08:22, 1F

10/13 00:38, , 2F
試作了一下,花了些時間: http://ideone.com/4Vrez
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
文章代碼(AID): #1GTiNa0d (C_Sharp)