Как я печатаю один бит?

Если ваша логика пунктуатора работает медленно, как несколько минут, поток Kafka не будет потреблять новые сообщения от определенного раздела (на котором выполняется пунктуатор), пока пунктуатор не завершит выполнение. также долго работающий пунктуатор не должен вызывать перебалансировку (перебалансировка может произойти по другим причинам)

, влияет ли пунктуатор на одном разделе на другие, зависит от того, запускаете ли вы приложение на одном узле или на нескольких, а также на num.stream.threads свойство, которое вы могли бы указать для Kafka Streams. если ваше приложение работает на одном узле, поток Kafka будет использовать только один поток для всех разделов (по умолчанию num.stream.threads равен 1). так что в этом случае пунктуатор на определенном разделе также блокирует все остальные разделы. но если у вас есть несколько экземпляров приложения и / или num.stream.threads больше 1, если некоторые из пунктуаторов работают быстро, то такие разделы не будут затронуты длительными пунктуаторами в других разделах.

7
задан Bence Kaulics 27 August 2017 в 13:55
поделиться

5 ответов

Если бит является просто интервалом, который содержит значение, Вы хотите в наименее значимом бите, то:

printf("%d", bit & 0x1);

должен сделать это. И делает двоичный файл - И с числом только с первым набором значимого бита, таким образом, Вы удаляете всю остальную часть битов в целом числе.

20
ответ дан 6 December 2019 в 05:01
поделиться

Если необходимо обобщить больше, чем Herms, Вы могли бы сделать это:

#define IsBitSet(val, bit) ((val) & (1 << (bit)))

/* ... your code ... */

printf ("%c", IsBitSet(bit, 0) ? '1' : '0');

printf эквивалентен ответу Herms, как.

Если Вы говорите о битовом поле в C, можно сделать это:

struct foo { int b:1; } myFoo;

printf("%c", myFoo.b ? '1' : '0');
10
ответ дан 6 December 2019 в 05:01
поделиться

Распечатать m-th укусило (m от 1.. 16 или 32) n:

void print_bit(n, m)
{
    printf("%d", n & (1 << (m - 1)));
}

Удалите - 1 бит, если Ваш разрядный счетчик запускается в 0.

3
ответ дан 6 December 2019 в 05:01
поделиться

Ответ C++ легче, чем C89 один с собственным типом bool:

bool b = true;
std::cout << b;

C99 весьма схож:

_Bool b = 1;
printf("%d", b);
1
ответ дан 6 December 2019 в 05:01
поделиться

Связанный вопрос: Как Вы устанавливаете, очищаете и переключаете единственный бит? расширенное обсуждение одноразрядного доступа в c и C++.

6
ответ дан 6 December 2019 в 05:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: