﻿# V6061\. The used constant value is represented by an octal form\.

Анализатор выявил подозрительное использование константы в восьмеричной системе счисления\. Анализатор предупреждает о наличии восьмеричных констант, если рядом нет других восьмеричных констант\. Такие "одиночные" восьмеричные константы часто являются ошибкой\.

Использование констант в восьмеричной системе счисления само по себе не является ошибкой\. Эта система удобна при работе с битами и используется в коде, взаимодействующем с сетью или внешними устройствами\. Однако средний программист редко использует эту систему счисления и поэтому может написать перед числом 0, забыв, что это превращает значение в восьмеричное\.

Рассмотрим ошибочный пример: 

```cpp
void compute(int red, int blue, int green)
{
  int color = 2220 * red +
              7067 * blue +
              0713 * green;

  // ...
}
```

Рассматривая подобный код непросто заметить ошибку, но она есть\. Ошибка в том, что последняя константа "0713" задана в восьмеричной системе счисления и имеет значение вовсе не 713, а 459\. Исправленный вариант кода:

```cpp
void compute(int red, int blue, int green)
{
  int color = 2220 * red +
              7067 * blue +
               713 * green;

  // ...
}
```

Как было сказано выше, предупреждение о восьмеричных константах выдается только в том случае, если вблизи от них нет других восьмеричных констант\. Поэтому следующий пример кода считается анализатором безопасным и для него предупреждений выдано не будет:

```cpp
short bytebit[] = {01, 02, 04, 010, 020, 040, 0100, 0200 };
```