首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问字符编码的有关问题

2012-03-23 
请教字符编码的问题我现在有一个很大的十进制数,比如909391681,转换为十六进制是36 34 37 41,转换为ASCII

请教字符编码的问题
我现在有一个很大的十进制数,比如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 

热点排行