长度10的整数,转成2个字节的byte数组

名字委婉点 2014-05-05 10:56:52
是这样的,
我有一个这样的数据包。
头四位 是一个时间标识
byte[] data = new byte[20];
data[0]=156;
data[1]=15;
data[2]=103;
data[3]=83;

转换成整数是 1399263132 ;
算法 BitConverter.ToInt32(data, 0);

时间是 2014-05-05 12:12:12 ;
时间转换成整数算法

DateTime dt =DateTime.Parse("2014-05-05 12:12:12");
TimeZone tz = TimeZone.CurrentTimeZone;
dt = dt.ToUniversalTime();
DateTime dtZone = new DateTime(1970, 1, 1, 0, 0, 0);
dt.Subtract(dtZone).TotalSeconds;


现在我想问:
1399263132 这个数字 转换成byte[2]
该如何转,因为我后面还需要将这个byte[2]转回1399263132 然后再转回时间 2014-05-05 12:12:12
...全文
273 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gomoku 2014-05-05
  • 打赏
  • 举报
回复
这个是行不通的。 因为4个字节变成2个字节是信息的损失过程,没有通用的方法可以使2个字节再复原为4个字节。 2个字节只能表示35565种状态,即使精确度为天,也只能表示总共不到10年的日子。
csdn网速很慢 2014-05-05
  • 打赏
  • 举报
回复
你在程序中约定时间从 今天开始。 把这时间序列化时减去今天的数 ,反序列化时再给加上。 这样你的时间从见天起不超过65535 这个数就ok了
於黾 2014-05-05
  • 打赏
  • 举报
回复
你本身是从byte[4]转过来的,你确定要转成byte[2]???
佛火 2014-05-05
  • 打赏
  • 举报
回复
1399263132 这个数字 转换成byte[2] 2字体能存储的最大范围是 65535,你确定能存得下? 把一些常用数值类型,转换成byte[],可以使用 BitConverter.GetBytes 方法的相关重载
名字委婉点 2014-05-05
  • 打赏
  • 举报
回复
请别建议我转成其他类型什么的 已经指定,只要2个字节的byte数组

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧