Some applications, such as binary communication protocols and assemblers, need to construct integers from elaborate bit field specifications. Hand-coding this using shift and bitor results in repetitive code. A higher-level facility exists to factor out this repetition: