67 lines
2.1 KiB
C#
67 lines
2.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Globalization;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace JSMachine.WMS.Infrastructure.Helper
|
|
{
|
|
/// <summary>
|
|
/// 值转换服务类
|
|
/// </summary>
|
|
public static class ValueConvertHelper
|
|
{
|
|
/// <summary>
|
|
/// 将一个int32类型转换为一个ushort数组,高位在前面
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static ushort[] IntToUshorts(int value)
|
|
{
|
|
string str = Convert.ToString(value, 2).PadLeft(32, '0');
|
|
string high = str.Substring(0, 16);
|
|
string low = str.Substring(16);
|
|
|
|
return new ushort[2] { Convert.ToUInt16(high, 2), Convert.ToUInt16(low, 2) };
|
|
}
|
|
|
|
public static short[] IntToShorts(int value)
|
|
{
|
|
string str = Convert.ToString(value, 2).PadLeft(32, '0');
|
|
string high = str.Substring(0, 16);
|
|
string low = str.Substring(16);
|
|
|
|
return new short[2] { Convert.ToInt16(high, 2), Convert.ToInt16(low, 2) };
|
|
}
|
|
/// <summary>
|
|
/// 将两个ushort转换为一个int,高位在前
|
|
/// </summary>
|
|
/// <param name="values"></param>
|
|
/// <returns></returns>
|
|
public static int UshortsToInt(ushort[] values)
|
|
{
|
|
return values.First() << 16 | values.Last();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将两个short转换为一个int,高位在前
|
|
/// </summary>
|
|
/// <param name="values"></param>
|
|
/// <returns></returns>
|
|
public static int ShortsToInt(short[] values)
|
|
{
|
|
return values.First() << 16 | values.Last();
|
|
}
|
|
/// <summary>
|
|
/// 调整值的后一位强制转换成无符号
|
|
/// </summary>
|
|
/// <param name="values"></param>
|
|
/// <returns></returns>
|
|
public static int adjShortsToInt(short[] values)
|
|
{
|
|
ushort value = (ushort)(values.Last());
|
|
return values.First() << 16 | value;
|
|
}
|
|
}
|
|
}
|