sprintf()
C#中有类似的东西吗?
我想比如将整数转换为2字节的字节数组.
就像是:
int number = 17; byte[] s = sprintf("%2c", number);
Marc Gravell.. 27
string s = string.Format("{0:00}", number)
第一个0表示"第一个参数"(即数字); 冒号后面的00是格式说明符(2位数字).
但请注意,.NET字符串是UTF-16,因此2个字符的字符串是4个字节,而不是2个字节
(编辑:问题从改变string
为byte[]
)
要获取字节,请使用Encoding
:
byte[] raw = Encoding.UTF8.GetBytes(s);
(显然不同的编码可能会给出不同的结果; UTF8会为这些数据提供2个字节)
实际上,第一位的较短版本是:
string s = number.ToString("00");
但string.Format
版本更灵活.
string s = string.Format("{0:00}", number)
第一个0表示"第一个参数"(即数字); 冒号后面的00是格式说明符(2位数字).
但请注意,.NET字符串是UTF-16,因此2个字符的字符串是4个字节,而不是2个字节
(编辑:问题从改变string
为byte[]
)
要获取字节,请使用Encoding
:
byte[] raw = Encoding.UTF8.GetBytes(s);
(显然不同的编码可能会给出不同的结果; UTF8会为这些数据提供2个字节)
实际上,第一位的较短版本是:
string s = number.ToString("00");
但string.Format
版本更灵活.