I am doing some cryptography with 128bit keys which necessitates using 16byte data chunks which I am storing as 16 byte unsigned char arrays.

```
unsigned char nonce_counter[16] = "xCv6Jk0neeV5GoSZ";

```

I frequently need to treat the value as a number to do some math, but I can't seem to find a safe way to type-cast the value. 

*How can I cast a 16byte value to a numerical data type?*

Specifically, I need to use bitwise XOR **A^B** and increment **A++**.

I know I could do the obvious and use a for loop and deal with each element of the array independently, but I am concerned about the efficiency lost in doing so.

My system does not support `__uint128_t`.