我该怎么做:
int32_t x = someValue;
进入我的char数组:
char * msg = new char[65546]();
任何帮助将不胜感激!
答案 0 :(得分:3)
这完全取决于您希望将值存储在数组中的方式。 如果要逐字节存储,可以使用以下代码:
int32_t x=someValue;
char *ptr = (char*)&x;
char *msg = new char[5];
for(int i=0;i<4;++i, ++ptr)
msg[i] = *ptr;
使用上述方法时应小心。因为有些系统使用big-endian而其他系统可能使用little-endian。
另一方面,如果要逐位存储到char
数组中,请使用以下命令:
int32_t x=someValue;
int digs[12], count=0;
char *msg = new char[12];
while(x>0)
{
digs[count++]=x%10;
x/=10;
}
int i=0;
while(count--)
{
msg[i++] = digs[count] +'0';
}
无论哪种方式都有效。但更喜欢第二个更好。因为很容易转换回整数。
答案 1 :(得分:2)
如果您想打印该值,为什么不这样做呢?
std::cout << "x = " << x << '\n';
答案 2 :(得分:1)
char* msg = new char[123];
int32_t x = 123;
int offset = 0;
memcpy(msg + offset, reinterpret_cast<char*>(&x), sizeof(int32_t));