c#怎么把textbox输入的十进制数变成十六进制并把高8位放在buff[0]低8位放在buff[1]
时间: 2024-09-11 09:12:14 浏览: 46
在C#中,你可以通过将TextBox中的十进制数值转换为十六进制字符串,然后分割这个字符串来实现你的需求。以下是一个简单的步骤:
1. 获取TextBox中的输入值:
```csharp
string inputDecimal = textBoxInput.Text;
decimal decimalValue = Convert.ToDecimal(inputDecimal);
```
2. 将十进制转换为十六进制:
```csharp
string hexString = decimalValue.ToString("X", CultureInfo.InvariantCulture); // "X" 表示十六进制格式
```
`ToString("X")`会自动将数字转换为小写字母表示的十六进制形式。
3. 如果需要提取出高位和低位:
```csharp
int highByte = int.Parse(hexString.Substring(0, 2), NumberStyles.HexNumber);
int lowByte = int.Parse(hexString.Substring(2), NumberStyles.HexNumber); // 如果超过两位,需要检查是否足够
byte[] buff = new byte[2];
buff[0] = (byte)highByte; // 高八位
buff[1] = (byte)lowByte; // 低八位
```
这里假设你有两位十六进制数,如果没有则需要处理边界情况。如果输入的十六进制字符串不足两位,则`Substring(2)`可能不会返回预期结果。
阅读全文