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.
|