字符到二进制转换是突然错误的?

时间:2016-09-30 05:51:33

标签: c

我有以下代码将char数组(如'hi \ n')转换为二进制并存储在int数组中。

Collection.add

这完美无缺。我得到的是01101000 01101001。我改变了关于这段代码的NOTHING并且最近再次运行它我现在得到01111111 01111111 ....我不知道发生了什么。在摆弄不相关的代码时,我确实遇到了堆损坏错误。是什么导致了这个?它仍然会对我的代码产生负面影响吗?

1 个答案:

答案 0 :(得分:2)

  1. 您对sizeof(数据)的期望是什么?你不会使用strlen吗?
  2. 您正在使用signed char作为掩码。首次执行“mask>> = 1;”之后你得到0xC0而不是0x40。尝试使用int或unsigned char,以避免在移位后设置符号。