Преобразуйте массив символа [] к байту [] и наоборот? C++

Вы можете установить свойство Format в выпадающем списке на

@;\0

. Это будет отображать ноль, если значение поля равно Null. В противном случае фактическое значение.

Другие свойства, которые также необходимо установить, это значения от Row Source Type до Value List и от Row Source до 0;0.5;1;1.5;2;2.5

Использование функции, такой как Nz(), в вашем запросе для изменения значение поля фактически создает новое поле, доступное только для чтения.

В вашем случае вам нужно, чтобы поле было обновляемым, поэтому один из ваших вариантов - поэкспериментировать с собственностью Format или Conditional Formatting.

13
задан 18 May 2009 в 04:18
поделиться

4 ответа

Тип char - один из немногих типов, размер которого гарантирован стандартом ANSI, и этот размер составляет 1 байт. Насколько мне известно, C не определяет напрямую байт типа. Однако было бы просто безумием иметь тип с именем byte, который на самом деле не является байтом по размеру. Следовательно, простое приведение должно помочь.

13
ответ дан 1 December 2019 в 21:38
поделиться

В C ++ нет байтового типа. Вы можете ввести «unsigned char» в «byte», если это будет удобнее. На самом деле, это все, что байт находится в C ++ - беззнаковый символ. Кроме того, да, я бы использовал приведение ... но это приведение лучше:

unsigned_char_arr[i]= static_cast<unsigned char>(char_arr[i]);

или ... просто используйте массив символов и приведите его, когда его нужно интерпретировать как символ без знака ...

4
ответ дан 1 December 2019 в 21:38
поделиться

В C ++ нет байтового типа, и согласно Стандарту:

Редактировать:

1.7:

Байт как минимум достаточно велик, чтобы содержать любой член основного набор символов исполнения и состоящий из непрерывной последовательности бит, количество которых определяется реализацией.

5.3.3:

sizeof (char), sizeof (подписанный char) и sizeof (unsigned char) равно 1; в результат sizeof применяется к любому другому основной тип (3.9.1) определяется реализацией.

7
ответ дан 1 December 2019 в 21:38
поделиться

Практически в каждой реализации C ++, с которой вы столкнетесь, char в точности равен байт октет. Это не гарантируется стандартом C ++, но практически всегда так. char всегда имеет размер не менее 8 бит, а точное количество битов задается константой препроцессора CHAR_BIT . Кроме того, оператор sizeof () сообщает вам размер объекта / типа с точки зрения количества char s, а не количества байтов октетов, поэтому, если вы были в какой-то странной системе с 16-битным char и 32-битным int , то sizeof (int) было бы 2, а не 4 .

РЕДАКТИРОВАТЬ: Байт заменен октетом. Стандарт C гарантирует, что символ char будет байтом, но не гарантируется, что байт будет октетом, а это ровно 8 бит. Если вы когда-нибудь читали какую-либо французскую техническую литературу, там всегда используется «октет» вместо «байта», и у них есть килоктеты (KO), мегаоктеты (MO) и т. Д. Вместо килобайт и мегабайт.

1
ответ дан 1 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

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