File: number_systems.md

package info (click to toggle)
reflect-cpp 0.21.0%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,128 kB
  • sloc: cpp: 50,336; python: 139; makefile: 30; sh: 3
file content (30 lines) | stat: -rw-r--r-- 802 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# `rfl::Binary`, `rfl::Hex` and `rfl::Oct` 

`rfl::Binary`, `rfl::Hex` and `rfl::Oct` can be used to express numbers
in binary, hex and octal format.

```cpp
struct ExampleStruct {
  rfl::Binary<uint8_t> binary;
  rfl::Hex<int> hex;
  rfl::Oct<int> oct;
};

const auto example = ExampleStruct{
    .binary = 30,
    .hex = 30,
    .oct = 30};
```

This results in the following JSON:

```json
{"binary":"00011110","hex":"1e","oct":"36"}
```

Note that the contained type must be integral for `rfl::Hex` and `rfl::Oct`. For `rfl::Binary`, it must be unsigned. Moreover, 
the number of digits for `rfl::Binary` will be determined by the bitsize of the type.

You can access the contained value using `.value()`, `.get()` or simply `operator()`.

You can produce the string representation using `.str()`.