长度十的整数,转成2个字节的byte数组
长度10的整数,转成2个字节的byte数组
是这样的,
我有一个这样的数据包。
头四位 是一个时间标识
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 ;
时间转换成整数算法
现在我想问:
1399263132 这个数字 转换成byte[2]
该如何转,因为我后面还需要将这个byte[2]转回1399263132 然后再转回时间 2014-05-05 12:12:12
------解决方案--------------------
1399263132 这个数字 转换成byte[2]
2字体能存储的最大范围是 65535,你确定能存得下?
把一些常用数值类型,转换成byte[],可以使用
BitConverter.GetBytes 方法的相关重载
------解决方案--------------------
你本身是从byte[4]转过来的,你确定要转成byte[2]???
------解决方案--------------------
你在程序中约定时间从 今天开始。 把这时间序列化时减去今天的数 ,反序列化时再给加上。 这样你的时间从见天起不超过65535 这个数就ok了
------解决方案--------------------
这个是行不通的。
因为4个字节变成2个字节是信息的损失过程,没有通用的方法可以使2个字节再复原为4个字节。
2个字节只能表示35565种状态,即使精确度为天,也只能表示总共不到10年的日子。
是这样的,
我有一个这样的数据包。
头四位 是一个时间标识
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
------解决方案--------------------
1399263132 这个数字 转换成byte[2]
2字体能存储的最大范围是 65535,你确定能存得下?
把一些常用数值类型,转换成byte[],可以使用
BitConverter.GetBytes 方法的相关重载
------解决方案--------------------
你本身是从byte[4]转过来的,你确定要转成byte[2]???
------解决方案--------------------
你在程序中约定时间从 今天开始。 把这时间序列化时减去今天的数 ,反序列化时再给加上。 这样你的时间从见天起不超过65535 这个数就ok了
------解决方案--------------------
这个是行不通的。
因为4个字节变成2个字节是信息的损失过程,没有通用的方法可以使2个字节再复原为4个字节。
2个字节只能表示35565种状态,即使精确度为天,也只能表示总共不到10年的日子。