id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 13109,Incorrect result when casting from multiprecision::uint128_t to unsigned long long.,gvisser@…,John Maddock,"I found in Boost 1.63.0 on: Ubuntu 14.04.5 with g++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4, 64-bit Windows 10's Windows Subsystem for Linux with g++ (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609. code snippet: uint128_t b128 = 0xFFFFFFFFFFFFFFFFFFFFFFFFC0A800FF_cppui; unsigned long long ull( static_cast( b128 ) ); printf( ""ull: %016llX\n"", ull ); The output is: ull: FFFFFFFFFFFFFFFF Under Windows 10 and Visual Studio 2015 the output is: ull: FFFFFFFFC0A800FF The work around I'm using is to mask out the upper 64 bits: ull = static_cast(b128 & 0x0FFFFFFFFFFFFFFFF); Thanks, Gary Visser",Bugs,closed,To Be Determined,multiprecision,Boost 1.63.0,Problem,fixed,,