二进制
00000000 10000000 00010000 00001100 00000001 00000000转10进制
0 128 16 12 1 0再把这6个10进制数分别转化为6个char字符,最后用base64 将char转为8个字符:手动转换结果 AIAQ DAEA
代码:
string strRet = ""; //6个10进制数
int[] intTen = new int[6]; //总长度 48bit = 6byte
char[] intChar = new char[6]; //{ 0, 128, 16, 12, 1, 0 }; for (int i = 0; i < 6; i++)
{
intTen[i] = int.Parse(SG_TwoToTen(long.Parse(s_customer.Substring(i * 8, 8))).ToString()); //intChar[i] = (char)intTen[i];
intChar[i] = Convert.ToChar(intTen[i]); //strRet += " " + intTen[i];
} //strRet += "_"; strRet += Convert.ToBase64String(Encoding.Default.GetBytes(intChar));最后 结果AD8QDAEA与手动转换的结果不同!分析原因 10000000 转换成十进制 128 再转char 后signed char 范围-128~~128 有越界嫌隙求解决办法!
00000000 10000000 00010000 00001100 00000001 00000000转10进制
0 128 16 12 1 0再把这6个10进制数分别转化为6个char字符,最后用base64 将char转为8个字符:手动转换结果 AIAQ DAEA
代码:
string strRet = ""; //6个10进制数
int[] intTen = new int[6]; //总长度 48bit = 6byte
char[] intChar = new char[6]; //{ 0, 128, 16, 12, 1, 0 }; for (int i = 0; i < 6; i++)
{
intTen[i] = int.Parse(SG_TwoToTen(long.Parse(s_customer.Substring(i * 8, 8))).ToString()); //intChar[i] = (char)intTen[i];
intChar[i] = Convert.ToChar(intTen[i]); //strRet += " " + intTen[i];
} //strRet += "_"; strRet += Convert.ToBase64String(Encoding.Default.GetBytes(intChar));最后 结果AD8QDAEA与手动转换的结果不同!分析原因 10000000 转换成十进制 128 再转char 后signed char 范围-128~~128 有越界嫌隙求解决办法!
解决方案 »
- Excel.Application excel = new Excel.Application()抛出异常???
- C#如何实现js的时间戳-Date.parse(new Date())
- 请问各位,有谁写过考勤软件的
- 求高手指教:同步套接字的连接发起端能设定尝试时间吗,在线等。。。。。
- 考大家一个小小的问题(你不一定答对)
- 我的smartphone模拟器不能安装软件?
- 如何得到dataset 的一个表里的 第5行第3列的值
- 有打印图片的控件代码吗?学习中..........thanks
- C# 有没有办法根据XmlDocument 直接生成架构
- 各位高手!我找到几本C#的书!请问Visual C#编程精彩百例这书怎么样啊?
- 【小问题,大家帮帮忙,立即结贴】请教一个Unity配置文件的语法问题。
- 急!哪里有Xceed DataGrid for WPF控件的下载?
static void Main(string[] args)
{
byte[] data = new byte[] { 0, 128, 16, 12, 1, 0 };
string result = Convert.ToBase64String(data, 0, data.Length);
Console.WriteLine(result);
Console.ReadKey();
}
结果:
AIAQDAEA