我想实现一个数据转化为字符数组byte[]类型
1)如果此数据是整形,则将他变为十六进制,然后进行一下操作如123456,变为16进制为1E240,编程到的40 E2 01 00 (不够补零),然后将其编程字符数组。
2)如果为浮点则按照IEEE 浮点数格式
有没有好的算法,如果有源码最好,谢谢。
1)如果此数据是整形,则将他变为十六进制,然后进行一下操作如123456,变为16进制为1E240,编程到的40 E2 01 00 (不够补零),然后将其编程字符数组。
2)如果为浮点则按照IEEE 浮点数格式
有没有好的算法,如果有源码最好,谢谢。
解决方案 »
- C#winForm打印条码
- C#获取项目可执行文件的相对路径
- 这行Sql语句怎么取(Sql Server)
- C# serialport类编写串口通信程序,无法接收全部数据!
- MIDI子窗口的标题栏怎么去掉呀
- 100分!求如何做MIS(管理信息系统)的帮助?第一次做帮助没有经验?最好可以介绍一下帮助的整体架构
- 请问如何读取ini中的每个[Section]
- 远程服务器如何抓屏
- 循环使用sqlDataAdapter1.Fill(dataSet1,"table")进行数据库操作后,报堆栈溢出?
- 请教ShowDialog ()的问题
- Win7下的DragDrop事件不触发 兄弟们速度看看有什么问题
- Marshal.PtrToStructure对于结构体内含结构的疑问
if (Regex.IsMatch(str, @"^\d+$"))
{
var ary = Regex.Matches(Convert.ToString(Convert.ToInt32(str), 16), @"(?i)[a-f0-9]{1,2}(?=([a-f0-9]{2})*$)").OfType<Match>().Select(t => t.Value).Reverse().ToArray();
}
浮点数怎么了,你要什么代码,如果是比较浮点数,只有那些可以精确标识的小数(如0.5)才可以精确比较,其他的自己规定个范围,作为比较规则)
/// 字符串转换为16进制字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
private string Decode(string str)
{
string strResult = string.Empty;
byte[] CByte = Encoding.ASCII.GetBytes(str);
foreach (byte b in CByte)
{
strResult += b.ToString("X2") + " ";
}
return strResult;
}
/// <summary>
/// 将指定的十六进制字符串转换为字节数组
/// </summary>
/// <param name="hexString"></param>
/// <returns></returns>
private static byte[] strToHexByte(string hexString)
{
hexString = hexString.Replace(" ", "");
if ((hexString.Length % 2) != 0)
hexString += " ";
byte[] returnBytes = new byte[hexString.Length / 2];
for (int i = 0; i < returnBytes.Length; i++)
returnBytes[i] = Convert.ToByte( hexString.Substring(i * 2, 2),16);
return returnBytes;
}