作者FSRS ()
看板C_Sharp
标题[问题]档案串流的3byte的有号数取得方法
时间Thu Oct 11 21:13:00 2012
有处理过档案串流的人应都有遇过将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
1F:→ phantasma:自己做sign extension之後再套用原本的转换函数如何? 10/12 08:22
大大辛苦了
其实你大概跟我讲一下方法给我个方向就好
不用这麽辛苦完整写出程式码啦XD
昨天晚上发文後
今天中午睡醒自己也有想到解法
就是用基本计概方式下去算
先将所要取得的数值取成无号数
在判断所取byte数MSB为1或0即可知正负
若为正则直接输出该无号数
若为负则取补数+1後再*-1输出
目前想法是这样
但程式刚刚才开始写写到一半还没实测就是了
不过大大的无号做位元平移
再转有号在平移回去也给了我另一个个不错的想法
感谢!!
※ 编辑: FSRS 来自: 114.36.213.68 (10/13 01:54)
3F:推 s3748679:嗯 加油 10/13 12:37