#748: 32bit Number Limit and Conversion -----------------------------+---------------------------------------------- Reporter: l...@… | Owner: lsansone...@… Type: defect | Status: new Priority: major | Milestone: MacRuby 0.7 Component: MacRuby | Keywords: 32bit number -----------------------------+---------------------------------------------- there seems to be a bug in the 32bit release of 0.6 with numbers
arch -arch i386 macirb --simple-prompt >> 0x44485250 # reality check => 1145590352 >> NSNumber.numberWithInt(0x44485250) # then see all 32 NSNumber are weird... => 71848528 >> NSNumber.numberWithFloat(0x44485250) => 1145590272.0 >> NSNumber.numberWithInt(1145590352) => 71848528 >> NSNumber.numberWithFloat(1145590352) => 1145590272.0 versus: arch -arch x86_64 macirb --simple-prompt >> 0x44485250 # reality check => 1145590352 >> NSNumber.numberWithInt(0x44485250) => 1145590352 >> NSNumber.numberWithFloat(0x44485250) => 1145590400.0 >> NSNumber.numberWithInt(1145590352) => 1145590352 >> NSNumber.numberWithFloat(1145590352.0) # this is weird again... => 1145590400.0 to look a bit further, the bug turning point seems to be here for the 32bit release: >> NSNumber.numberWithInt(536870910) => 536870910 >> NSNumber.numberWithInt(536870911) => 536870911 >> NSNumber.numberWithInt(536870912) => -536870912 >> NSNumber.numberWithInt(536870913) => -536870911 and here in the 64 bit: >> NSNumber.numberWithInt(2147483646) => 2147483646 >> NSNumber.numberWithInt(2147483647) => 2147483647 >> NSNumber.numberWithInt(2147483648) => -2147483648 >> NSNumber.numberWithInt(2147483649) => -2147483647 also an other detail: 32bit turning point: >> 536870911 / 16 => 33554431 64bit turning point: >> 2147483647 / 64 => 33554431 -- Ticket URL: <http://www.macruby.org/trac/ticket/748> MacRuby <http://macruby.org/> _______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel