各类型转换成byte[] 和HexString
public class ByteUtil
{
/// <summary>
/// string >>Length
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static int getLength(String str)
{
return getBytes(str).Length;
}
/// <summary>
/// string >Encoding>byte[]
/// </summary>
/// <param name="data"></param>
/// <param name="charsetName"></param>
/// <returns></returns>
public static byte[] getBytes(String data, String charsetName)
{
return System.Text.Encoding.GetEncoding(charsetName).GetBytes(data);
}
/// <summary>
/// string >GBK>byte[]
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static byte[] getBytes(String data)
{
return getBytes(data, "GBK");
}
/// <summary>
/// short>>byte[]
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static byte[] getBytes(short data)
{
byte[] bytes = new byte[2];
bytes[0] = (byte)(data & 0xFF);
bytes[1] = (byte)((data & 0xFF00) >> 8);
return bytes;
}
/// <summary>
/// char>>byte[定长]
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static byte[] getBytes(char c, int count)
{
byte[] bytes = new byte[count];
for (int i = 0; i < bytes.Length; ++i)
{
bytes[i] = (byte)c;
}
return bytes;
}
/// <summary>
/// int>length==4>byte[]
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static byte[] getBytes(int data)
{
byte[] bytes = new byte[4];
bytes[0] = (byte)(data & 0xFF);
bytes[1] = (byte)((data & 0xFF00) >> 8);
bytes[2] = (byte)((data & 0xFF0000) >> 16);
bytes[3] = (byte)((data & 0xFF000000) >> 24);
return bytes;
}
/// <summary>
/// long>>byte[]
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static byte[] getBytes(long data)
{
byte[] bytes = new byte[8];
bytes[0] = (byte)(int)(data & 0xFF);
bytes[1] = (byte)(int)(data >> 8 & 0xFF);
bytes[2] = (byte)(int)(data >> 16 & 0xFF);
bytes[3] = (byte)(int)(data >> 24 & 0xFF);
bytes[4] = (byte)(int)(data >> 32 & 0xFF);
bytes[5] = (byte)(int)(data >> 40 & 0xFF);
bytes[6] = (byte)(int)(data >> 48 & 0xFF);
bytes[7] = (byte)(int)(data >> 56 & 0xFF);
return bytes;
}
/// <summary>
/// float>>byte[]
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static byte[] getBytes(float data)
{
int intBits = BitConverter.ToInt32(BitConverter.GetBytes(data), 0);
return getBytes(intBits);
}
/// <summary>
/// GB2312 byte【】==》 中文
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static string LanChange(byte[] data)
{
Encoding utf8;
Encoding gb2312;
utf8 = Encoding.GetEncoding("UTF-8");
gb2312 = Encoding.GetEncoding("GB2312");
data = Encoding.Convert(gb2312, utf8, data);
return utf8.GetString(data);
}
/// <summary>
/// 中文==》 GB2312 byte【】
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static byte[] ChangeLan(string data)
{
byte[] bs = Encoding.GetEncoding("UTF-8").GetBytes(data);
bs = Encoding.Convert(Encoding.GetEncoding("UTF-8"), Encoding.GetEncoding("GB2312"), bs);
return bs;
}
/// <summary>
/// 16进制字符串转回string
/// </summary>
/// <param name="hs"></param>
/// <param name="encode"></param>
/// <returns></returns>
public static string HexStringToString(string hs, Encoding encode)
{
string strTemp = "";
byte[] b = new byte[hs.Length / 2];
for (int i = 0; i < hs.Length / 2; i++)
{
strTemp = hs.Substring(i * 2, 2);
if (strTemp != "\0\0")
{
b[i] = Convert.ToByte(strTemp, 16);
}
}
//按照指定编码将字节数组变为字符串
return encode.GetString(b);
}
/// <summary>
/// string 转回16进制字符串
/// </summary>
/// <param name="hs"></param>
/// <param name="encode"></param>
/// <returns></returns>
public static string StringToHexString(string s, Encoding encode)
{
byte[] b = encode.GetBytes(s);//按照指定编码将string编程字节数组
string result = string.Empty;
for (int i = 0; i < b.Length; i++)//逐字节变为16进制字符
{
result += Convert.ToString(b[i], 16);
}
return result;
}
}
各类型转换成byte[] 和HexString的更多相关文章
- java基本数据类型转换成byte[]数组
import java.io.UnsupportedEncodingException; public class ConToByte { /** * double转换byte ...
- 聊聊java基础,int值强制类型转换成byte
聊聊java基础,int值强制类型转换成byte 知识点:byte.short.char在表达式中会自动提升为int 之前做一个应用时,打印IP地址,因为是用4个byte存储的,所以打印的时候值范围是 ...
- Java byte类型转换成int类型时需要 & 0XFF的原因
Java byte类型转换成int类型时需要 & 0XFF的原因 假设有byte b = -1; 那么b的二进制是:1111 1111. 如果将b直接转换为int类型,那么二进制是 1111 ...
- Java将其他数据类型转换成JSON字符串格式
Student.java package com.demo.servlet; import java.util.List; import java.util.Map; public class Stu ...
- C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)
在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结.一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string ...
- 字符串string类型转换成DateTime或DateTime?类型
常用的Convert.ToDateTime方法 //将含有正确日期格式的string类型转换成DateTime类型 string strDate = "2014-08-01"; D ...
- 将java.util.Date类型转换成json时,使用JsonValueProcessor将date转换成希望的类型
问题描述: java里面时间类型转换成json数据就成这样了: "createTime":{"date":30,"day":3," ...
- String[255]在高版本Delphi里还是被解释成Byte,总体长度256,使用StrPCopy可以给Array String拷贝字符串(内含许多实验测试)
学了好多不了解的知识: procedure TForm1.Button1Click(Sender: TObject); var s1 : String; s2 : String[]; begin s1 ...
- 工具类:将其他编码类型转换成UTF-8或者其他类型的工具类
将其他编码类型转换成UTF-8或者其他类型的工具类 public static String changeUTF(String str) { String newStr = null; try { n ...
随机推荐
- 【转】c++虚函数实现原理
原文链接:https://blog.csdn.net/neiloid/article/details/6934135 C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型别的指 ...
- LUA upvalue使用陷阱一例
CA = {} CA.TestCb = function(self, cb) if not self._cb then self._cb = function() cb() end end self. ...
- short i=1;short i=i+1对或错,错的理由;short i+=1对或错,错的理由
short i=1; i=i+1 i+=1 这是一个类型高级与低级的问题,前面的C是short型的,后面的1为int型的,short型与int型的相加得到short型是不可取,因为必须将int型转换为 ...
- ubuntu10.10手工安装jdk1.6
声明:以下操作是在root用户下操作. 一.下载JDK首先,在Oracle的官网上下载JDK.http://www.oracle.com/technetwork/java/javase/downloa ...
- Django实现支付宝付款和微信支付
支付宝支付和微信支付是当今互联网产品常用的功能,我使用Django Rest Framework实现了网页上支付宝支付和微信支付的一个通用服务,提供rpc接口给其他服务,包括获取支付宝支付页面url的 ...
- java 蓝桥杯基础练习 01字串 进制转换
问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能.它们的前几个是: 请按从小到大的顺序输出这32种01串. 输入格式 本试题没有输入. 输出格式 输出32行,按从小到大的顺 ...
- 在SharePoint解决方案中使用JavaScript (1) – 引用.js文件
本文是系列文章的第一篇. 在SharePoint解决方案中使用JavaScript (0) 作为在SharePoint应用程序中使用JavaScript的第一步,就是要知道如何将一个写好的.js文件, ...
- JAVA中的数组对象
代码:Student [] sd=new Student[5];//新建一个学生类的数组对象sd. sd[0]=new Student("kj",13);//为数组对 ...
- 802.11bgn信道划分及WirelessMon规划频段
一.802.11bgn模式支持14信道,第14信道一般不使用.对应频率范围如下: Channel Frequency range Central Frequency ----------------- ...
- CS API 测试3
//添加二级存储 http://192.168.150.16:8080/client/api? command=addSecondaryStorage& zoneId=7e34afc4-6 ...