请问字符编码的有关问题
请教字符编码的问题
我现在有一个很大的十进制数,比如909391681,转换为十六进制是36 34 37 41,转换为ASCII码是647A。C#中如何写一个函数,传入十进制参数,返回ASCII码字符?求高手指点。。。感激
------解决方案--------------------
ASCII码有限制,并不是所有0-255之间的数字都能转换为ASCII码的。
------解决方案--------------------
很大的,这个超出界限如何办,那就数大数计算了,另说
如果符合范围,你不如把int读到byte[]中,你逐个字节的转为char即可,比如
我现在有一个很大的十进制数,比如909391681,转换为十六进制是36 34 37 41,转换为ASCII码是647A。C#中如何写一个函数,传入十进制参数,返回ASCII码字符?求高手指点。。。感激
------解决方案--------------------
ASCII码有限制,并不是所有0-255之间的数字都能转换为ASCII码的。
------解决方案--------------------
很大的,这个超出界限如何办,那就数大数计算了,另说
如果符合范围,你不如把int读到byte[]中,你逐个字节的转为char即可,比如
- C# code
int i = 124344343; byte[] bs = new byte[sizeof(int)]; bs = BitConverter.GetBytes(i); foreach (char c in bs) { MessageBox.Show(Convert.ToString(c)); }
------解决方案--------------------
- C# code
public string test(int flag) { if (flag >= 0 && flag <= 255) { System.Text.ASCIIEncoding ascEn = new System.Text.ASCIIEncoding(); byte[] arr = new byte[] { (byte)flag }; string str = ascEn.GetString(arr); return (str); } else { return null; } }
------解决方案--------------------
- C# code
decimal dm = 909391681; byte[] by = BitConverter.GetBytes(decimal.ToInt64(dm)); string acs = Encoding.ASCII.GetString(by);//貌似多了几个\0