trivial: cast to unsigned would probably be more efficient (wouldn't truncate)