Need help with SSC-32 firmware

The line of code below confuses me a bit. BANK_TO_DELTA_US =2500. The expression below evaluates to 110592. The maximum that a 16 bit number can represent is 65535. How then is 110592 stored in edge_time which is a 16 bit variable.

edge_array 27 ] . edge_time = (uint16_t) ( BANK_TO_BANK_DELTA_US * 3 * 14.7456 ) ;

Can anyone tell me what is going on here.