Mar*_*ell 27
string s = string.Format("{0:00}", number)
Run Code Online (Sandbox Code Playgroud)
第一个0表示"第一个参数"(即数字); 冒号后面的00是格式说明符(2位数字).
但请注意,.NET字符串是UTF-16,因此2个字符的字符串是4个字节,而不是2个字节
(编辑:问题从改变string
为byte[]
)
要获取字节,请使用Encoding
:
byte[] raw = Encoding.UTF8.GetBytes(s);
Run Code Online (Sandbox Code Playgroud)
(显然不同的编码可能会给出不同的结果; UTF8会为这些数据提供2个字节)
实际上,第一位的较短版本是:
string s = number.ToString("00");
Run Code Online (Sandbox Code Playgroud)
但string.Format
版本更灵活.
事实证明,我真正想要的是这样的:
short number = 17;
System.IO.BinaryWriter writer = new System.IO.BinaryWriter(stream);
writer.Write(number);
writer.Flush();
Run Code Online (Sandbox Code Playgroud)
这里的关键是 BinaryWriter 类的 Write 函数。它有 18 个重载,将不同的格式转换为写入流的字节数组。就我而言,我必须确保要写入的数字保存在短数据类型中,这将使 Write 函数写入 2 个字节。
归档时间: |
|
查看次数: |
31936 次 |
最近记录: |