进制转换,类型转换
2012-06-01 22:00
99 查看
//十六进制字符串转换为十进制
string str = "0c";
int i = int.Parse(str, System.Globalization.NumberStyles.HexNumber); //输出i=12
i = Convert.ToInt32(str, 16); // //输出i=12
//long型到byte[]
public static byte[] getLongToBytes(long s, bool asc) ///ASC=true正常升序输出,false降序输出
{
// long L = 391768031;
byte[] buf = new byte[8];
if (asc)
{
for (int i = 0; i < buf.Length; i++)
{
buf[i] = (byte)(s & 0x00000000000000ff); //和0与去掉高位数据,获取最低位数据
s >>= 8; //右移8位
}
}
else
{
for (int i = buf.Length - 1; i >= 0; i--)
{
buf[i] = (byte)(s & 0x00000000000000ff);
s >>= 8;
}
}
return buf;
}
//byte[]转换为long
public static long getByteToLong(byte[] buf, bool asc)
{
if (buf == null)
{
throw new Exception("byte array is null!");
}
if (buf.Length > 8)
{
throw new Exception("byte array size > 8 !");
}
long r = 0;
if (asc)
{
for (int i = 0; i < buf.Length; i++)
{
r <<= 8;
r |= buf[i] & (long)(0x00000000000000ff);
// r |= Convert.ToInt64((buf[i] & 0x00000000000000ff));
}
}
else
for (int i = buf.Length - 1; i >= 0; i--)
{
r <<= 8;
r |= buf[i] & (long)(0x00000000000000ff);
}
return r;
}
/// <summary>
/// 十六进制字符串转化为List<byte>
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public List<byte> HexStringTobytes(string str)
{
List<byte> lst = new List<byte>();
string TmpStr = str.ToUpper().Replace("0X", "");
try
{
for (int i = 0; i < TmpStr.Length; i += 2)
{
int iStr = Convert.ToInt32(TmpStr.Substring(i, 2), 16);
lst.Add((byte)iStr);
}
// byte[] b = lst.ToArray(); //List<byte>转换为byte[]
}
catch (Exception e)
{
lst = null;
}
return lst;
}
.
string str = "0c";
int i = int.Parse(str, System.Globalization.NumberStyles.HexNumber); //输出i=12
i = Convert.ToInt32(str, 16); // //输出i=12
//long型到byte[]
public static byte[] getLongToBytes(long s, bool asc) ///ASC=true正常升序输出,false降序输出
{
// long L = 391768031;
byte[] buf = new byte[8];
if (asc)
{
for (int i = 0; i < buf.Length; i++)
{
buf[i] = (byte)(s & 0x00000000000000ff); //和0与去掉高位数据,获取最低位数据
s >>= 8; //右移8位
}
}
else
{
for (int i = buf.Length - 1; i >= 0; i--)
{
buf[i] = (byte)(s & 0x00000000000000ff);
s >>= 8;
}
}
return buf;
}
//byte[]转换为long
public static long getByteToLong(byte[] buf, bool asc)
{
if (buf == null)
{
throw new Exception("byte array is null!");
}
if (buf.Length > 8)
{
throw new Exception("byte array size > 8 !");
}
long r = 0;
if (asc)
{
for (int i = 0; i < buf.Length; i++)
{
r <<= 8;
r |= buf[i] & (long)(0x00000000000000ff);
// r |= Convert.ToInt64((buf[i] & 0x00000000000000ff));
}
}
else
for (int i = buf.Length - 1; i >= 0; i--)
{
r <<= 8;
r |= buf[i] & (long)(0x00000000000000ff);
}
return r;
}
/// <summary>
/// 十六进制字符串转化为List<byte>
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public List<byte> HexStringTobytes(string str)
{
List<byte> lst = new List<byte>();
string TmpStr = str.ToUpper().Replace("0X", "");
try
{
for (int i = 0; i < TmpStr.Length; i += 2)
{
int iStr = Convert.ToInt32(TmpStr.Substring(i, 2), 16);
lst.Add((byte)iStr);
}
// byte[] b = lst.ToArray(); //List<byte>转换为byte[]
}
catch (Exception e)
{
lst = null;
}
return lst;
}
.
相关文章推荐
- Java中的类型转换和进制转换
- 【转】C#.NET 中的类型转换和进制转换
- 02_java关键字、表识符、注释、进制转换、补码反码、数据类型转换
- 2 Java基础语法(关键字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换)
- JAVA位运算、进制转换、byte数组转换、JAVA数据类型取值范围
- C#.NET 中的类型转换和进制转换
- 基本数据类型类型转换和进制转换
- 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)
- [Java]转义字符、进制转换、数据类型及其转换、位运算符、位移运算符
- 数值类型转换规则以及进制转换
- Java重修之路(二)第一个程序分析,注释,关键字,标识符,常量,进制转换,类型转换
- java回顾篇——进制转换,变量,数据类型的转换,运算符
- Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换
- 黑马程序员_JavaSE基础16 之 基本类型转换 进制转换 拆装箱 List Set
- C#简单通用的进制转换,把非十进制的数据类型转换成十进制的,然后再转换成其他类型。
- javascript中的类型转换(进制转换|位运算)
- Java 基础入门随笔(2) JavaSE版——关键字、进制转换、类型转换
- 使用 ATL 提供的转换宏进行类型转换 LPSTR LPCSTR LPWSTR LPCWSTR
- 将数据库查出的clob类型转换为String
- 隐式类类型转换