Я кодирую Агент SNMP. Я должен отправить значения, которые имеют десятичную точку менеджеру по SNMP.
У меня есть пара опций:
Если я усекаю число, я теряю большую информацию, в которой я нуждаюсь.
Если я умножусь константой, то менеджер отобразит странные единицы, которые не видел бы конечный пользователь. (граммы вместо килограммов).
Так, я делаю опцию 3. Что я делаю?
Обычный, стандартный способ сделать это - определить ТЕКСТУАЛЬНОЕ СОГЛАШЕНИЕ с типом интеграла (например, Integer32 или Unsigned32) и DISPLAY-HINT с форматом "d-N", где N - это количество мест, которое должно быть смещено десятичной дробью для отображения.
Таким образом, для значения с одним десятичным разрядом от (скажем, 0.0 до 10.0) следует использовать ТЕКСТУАЛЬНОЕ СОГЛАШЕНИЕ типа Беззнакового32(0...100) и ДИСПЛЕЙ-ХИНТ с "d-1". На проводе значение варьируется от 0 до 100, но менеджер (через загружаемый модуль MIB) будет сдвигать десятичный разряд на одно место для отображения диапазона от 0.0 до 10.0.
Другие способы этого не способствуют интероперабельности.
В качестве октектного потока в формате IEEE-754 (8 октетов). См.: http://en.wikipedia.org/wiki/ieee_754-2008
Нет, в данном случае нет двусмысленности, но учтите следующее:
struct SCustomData {
//...
void SetCode(int nCode)
{
//OOPS!!! Here we do nothing!
//nCode = nCode;
//This works but still error prone
this->nCode = nCode;
}
};
Следует обратить внимание на один из существующих стилей кодирования. Например, Общее правило именования в стилях кодирования Google C++ или прочитайте превосходную книгу « Стандарты кодирования C++: 101 правила, руководящие принципы и передовой опыт » Херба Саттера и Андрея Александреску.
-121--4690841- Чтобы код был действительным, нельзя поместить тэг в < ul >
, кроме < li >
.
Однако можно поместить любой элемент уровня блока в < li >
, например:
<ul>
<li>
<h2>...</h2>
<p>...</p>
<p>...</p>
</li>
</ul>
-121--1192812- Я скорее отправляю эти данные через OCTET STRING/DisplayString. Такие номера, как «1.5», могут быть легко отправлены.
Однако, если данные должны быть точными, вы можете использовать предложение Кайла, отправляя байты (октеты). Заметно, что это также отправляется через OCTET STRING, поскольку это идеальный контейнер байтов.