作者bleed1979 (十三)
看板C_and_CPP
标题Re: [问题] 把8个 0/1 存成一个byte
时间Wed Apr 1 09:22:43 2009
因为不会将array印出来, 结尾就不加'\0'
两个互转的程式让您对照参考, 您要的程式在第二个.
#include <stdio.h>
int main(void)
{ /*1 2 4 8 16 32 64 128 */
char array[8] = {'1', '0', '0', '1', '1', '1', '0', '0'};
char array2[1];
int byte_value = 0;
int byte_value2[8] = {1, 0, 0, 1, 1, 1, 0, 0};
int i = 0;
byte_value = 0;
for(i = 0; i < 8; ++i)
{
if(array[i] - '0')
{
byte_value += (array[i] - '0') << i;
}
}
printf("%d\n", byte_value);
array2[0] = (char)0;
for(i = 0; i < 8; ++i)
{
if(byte_value2[i])
{
array2[0] += byte_value2[i] << i;
}
}
printf("%c\n", array2[0]);
return 0;
} /* code - end */
※ 引述《yuhooo (yuho)》之铭言:
: 假设线再我有一个 char[1]
: 怎样让8个0/1整数 写到char中
: 使char[] 改变
: 谢谢!
--
World of bleed1979
http://bleed1979.myweb.hinet.net/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.132.166
1F:推 yuhooo:大感谢~ 04/01 11:27