当前位置: 首页 > 编程语言 > C#

C#中的sp#f?在C#中共享

时间:2023-04-10 23:12:50 C#

sp#f?C#中有类似sprintf()的东西吗?例如,我想将一个整数转换为2个字节的字节数组。比如:intnumber=17;byte[]s=sprintf("%2c",数字);strings=string.Format("{0:00}",number)第一个0表示“第一个参数”(即一个数字);冒号后的00是格式说明符(2位数字)。但请注意.NET字符串是UTF-16,所以2个字符串是4个字节,而不是2个字节(编辑:问题从字符串更改为byte[])要获取字节,请使用编码:byte[]raw=Encoding.UTF8.GetBytes(s);(显然不同的编码可能会给出不同的结果;UTF8会为这些数据给出2个字节)实际上,第一位更短版本是:strings=number.ToString("00");但string.Format版本更灵活。编辑:我假设您想将整数的值转换为字节数组,而不是先将值转换为字符串然后再转换为字节数组(检查marc对后者的回答。)将int转换为a字节数组,你可以使用:byte[]array=BitConverter.GetBytes(17);但这会给你一个4字节而不是2字节的数组(因为int是32位)。要得到一个2字节的数组,你应该使用:byte[]array=BitConverter.GetBytes((short)17);如果只想将值17转换为两个字符,请使用:stringresult=string.Format("{0:00}",17);但正如marc指出的那样,结果将占用4个字节,因为.NET中的每个字符都是2个字节(UTF-16)(包括保存字符串长度的两个字节,即6个字节)。原来我真正要的是这个:shortnumber=17;System.IO.BinaryWriterwriter=newSystem.IO.BinaryWriter(stream);writer.Write(数字);writer.Flush();这里的关键是BinaryWriter类的Write函数。它有18个重载,将不同的格式转换为写入流的字节数组。在我的例子中,我必须确保我想要写入的数字保存在短数据类型中,这将使Write函数写入2个字节。以上就是C#学习教程:sp#finC#?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: