Files
2026-09-02 16:31:50 +08:00

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;
}
}
}