[complement-svn] SF.net SVN: complement: [1541] trunk/complement/explore/inquiry/shades/sign /char.
Status: Pre-Alpha
Brought to you by:
complement
From: <com...@us...> - 2007-03-06 13:27:08
|
Revision: 1541 http://svn.sourceforge.net/complement/?rev=1541&view=rev Author: complement Date: 2007-03-06 05:27:00 -0800 (Tue, 06 Mar 2007) Log Message: ----------- signed/unsigned bit expantion Modified Paths: -------------- trunk/complement/explore/inquiry/shades/sign/char.c Modified: trunk/complement/explore/inquiry/shades/sign/char.c =================================================================== --- trunk/complement/explore/inquiry/shades/sign/char.c 2007-02-28 17:21:00 UTC (rev 1540) +++ trunk/complement/explore/inquiry/shades/sign/char.c 2007-03-06 13:27:00 UTC (rev 1541) @@ -1,4 +1,5 @@ #include <stdio.h> +#include <stdint.h> int main() { @@ -7,8 +8,29 @@ unsigned int ui1 = (unsigned)c1; unsigned ui2 = (unsigned)c2; + /* unsigned ui3 = ~((1 << (sizeof(unsigned) * 8 - 1)) >> 3); */ + unsigned ui3 = ~((1U << 31U) >> 3U); + uint64_t ui4 = ~((1ULL << 63ULL) >> 3ULL); + union { + uint64_t i64; + struct { + uint32_t lo; + uint32_t hi; + } i32; + } ui5; - printf( "%x\n", ui1 ); + ui5.i64 = ui4; + printf( "%x %x %llx %x\n", ui1, ui3, ui4, ui5.i32.hi ); + + ui4 = ((~0ULL) / 2ULL) >> 52ULL; + + printf( "%llx\n", ui4 ); + ui4 = ~0ULL >> 53; + printf( "%llx\n", ui4 ); + ui4 = ~0ULL & (~0ULL << 53); + printf( "%llx\n", ui4 ); + + return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |