Пример #1
0
void ToBinary(int n) {
  if (n / 2 != 0) {
    ToBinary(n / 2);
  }
  PublicBinary.push_back(n % 2);
  //printf("%d", n % 2);
}
Пример #2
0
std::vector<int> ToGamma(int n){

  // Gamma = A*B

  ToBinary(n);
  int BinarySize = PublicBinary.size();

  std::vector<int> A = ToUnary(BinarySize);
  std::vector<int> B = PublicBinary;
  // Le quitamos el bit significativo
  B.erase(B.begin());

  std::vector<int> gamma = A;
  gamma.insert(gamma.end(), B.begin(), B.end());
  return gamma;
}
Пример #3
0
void JSONValue::ToBinary(Stream& dest) const
{
    dest.Write((unsigned char)type);

    switch (type)
    {
    case JSON_BOOL:
        dest.Write(data.boolValue);
        break;

    case JSON_NUMBER:
        dest.Write(data.numberValue);
        break;

    case JSON_STRING:
        dest.Write(GetString());
        break;

    case JSON_ARRAY:
        {
            const JSONArray& array = GetArray();
            dest.WriteVLE(array.Size());
            for (auto it = array.Begin(); it != array.End(); ++it)
                it->ToBinary(dest);
        }
        break;

    case JSON_OBJECT:
        {
            const JSONObject& object = GetObject();
            dest.WriteVLE(object.Size());
            for (auto it = object.Begin(); it != object.End(); ++it)
            {
                dest.Write(it->first);
                it->second.ToBinary(dest);
            }
        }
        break;

    default:
        break;
    }
}