C++ long类型10转 8字节char 数组
时间: 2024-03-16 20:44:20 浏览: 103
将一个long类型的10进制数转换为8字节的char数组可以通过以下步骤实现:
1. 将long类型的10进制数转换为2进制数,例如将1234567890转换为2进制数为1001001100101100000001011010010。
2. 将2进制数分成8位一组,例如将1001001100101100000001011010010分成了10010011和00101100两组。
3. 将每组2进制数转换为对应的十六进制数,例如10010011对应的十六进制数为0x93,00101100对应的十六进制数为0x2C。
4. 将每个十六进制数转换为对应的字符形式,并存储到char数组中,例如0x93对应的字符为'9',0x2C对应的字符为','。
综上所述,将long类型的10进制数1234567890转换为8字节的char数组的代码如下:
```c++
long num = 1234567890;
char arr[9] = {0}; // 8字节char数组,最后一位存放'\0'结束符
int i = 7;
while (num) {
int bit = num % 2;
arr[i--] = bit + '0';
num /= 2;
}
while (i >= 0) {
arr[i--] = '0';
}
for (int j = 0; j < 8; j++) {
int hex = 0;
for (int k = 0; k < 8; k++) {
hex = hex * 2 + (arr[j * 8 + k] - '0');
}
arr[j] = hex <= 9 ? hex + '0' : hex - 10 + 'A';
}
```
这段代码将1234567890转换为二进制数1001001100101100000001011010010,然后将其分组为10010011和00101100,再将每组转换为对应的十六进制数'9'和',',最后将字符存储到char数组中。
阅读全文