Я нашел следующий код для преобразования int / char в двоичный файл:
char* int2bin(int value, char* buffer, int bufferSize) {
char *nextChar = buffer + bufferSize-1; // location to write the least significant bit
*nextChar = 0; // add the null terminator
do {
nextChar--;
(value & 1) ? *nextChar = '1' : *nextChar = '0'; // if set set to '1' else '0'
value = value>>1;
if (nextChar == buffer)
break;
} while (value);
return nextChar;
}
Я знаю, что могу сделать следующее
binString = int2bin(inputBuff[i], binaryBuffer, 17);
fprintf (WriteTo, "%s\n", binString);
Но я бы хотел сейчас сохранитьchar Я только что попал в binString, один из двоичных битов преобразования, в массив символов, который я хочу передать в другом месте, но из-за недостатка понимания указателей мне было трудно понять, как его получить.
Я попытался сделать это, объявив массив символов и попытавшись сохранить бит:
char inputBuffStr[32];
, а затем ...
binString = int2bin(inputBuff[i], binaryBuffer, 17);
inputBuffStr[i] = binString;
, где я увеличивается набит как часть анализа ввода, а binString имеет тип char *.
Я получаю сообщение об ошибке: значение типа "char *" нельзя присвоить объекту типа "char" "inputBuffStr [i] = binString; "
Если бы кто-нибудь мог объяснить, как я могу получить фактические 0 или 1, присутствующие в binString?Кажется, я не могу понять, как я могу выполнить fprintf значения, но не могу вывести его в свой массив символов?