java中不存在Unsigned无符号数据类型,处理方式:
http://eric-gcm.iteye.com/blog/1166399
http://blog.csdn.net/todd911/article/details/9378319
字节、ASCII、hex处理:
java: http://www.jb51.net/article/18146.htm
C#
public class DirectivesConvert
{
//2、10、16进制转换
public string ConvertRadix(string value,string radixMode)
{
if (string.IsNullOrEmpty(value) || value == "0" || value == "1") return value;
string rs ="";
switch (radixMode){
case "210": rs = Convert.ToInt32(value, 2).ToString(); break;
case "216": rs = Convert.ToString(Convert.ToInt32(value, 2), 16); break;
case "102": rs = Convert.ToString(int.Parse(value), 2).ToString(); break;
case "1016": rs = Convert.ToString(int.Parse(value), 16); break;
case "162": rs = Convert.ToString(Convert.ToInt32(value, 16), 2); break;
case "1610": rs = Convert.ToInt32(value, 16).ToString(); break;
}
return rs;
}
//字符转为16进制ASCII码 eg:门锁S转为53
public static string StrToHexAscii(string str)
{
StringBuilder stringBuilder = new StringBuilder(str.Length * 2);
for (int i = 0; i < str.Length; i++)
stringBuilder.Append(((int)str[i]).ToString("X2"));
return stringBuilder.ToString();
}
/// <summary>
/// 字符串转16进制字节数组
/// </summary>
/// <param name="src">十六进制字符串</param>
/// <returns></returns>
public static byte[] HexString2Bytes(string src)
{
if (null == src || 0 == src.Length) return null;
src = src.Replace(" ", "").ToUpper();
byte[] ret = new byte[src.Length / 2];
for (int i = 0; i < (src.Length / 2); i++)
ret[i] = Convert.ToByte(src.Substring(i * 2, 2), 16); //(byte)Int32.Parse(src.Substring(i * 2, 2), System.Globalization.NumberStyles.HexNumber);
return ret;
}
}