--- a/Integer.st Wed Jan 20 13:21:41 2016 +0100
+++ b/Integer.st Wed Jan 20 15:39:14 2016 +0100
@@ -2475,6 +2475,12 @@
^ (self bitAnd:16rFFFFFF) signExtended24BitValue
+ "
+ 16r800000 signExtended24BitValue
+ 16r7FFFFF signExtended24BitValue
+ 16rFFFFFF signExtended24BitValue
+ "
+
"Modified: / 07-05-1996 / 09:31:57 / cg"
"Created: / 05-03-2012 / 14:37:55 / cg"
!
@@ -2485,14 +2491,45 @@
^ (self bitAnd:16rFF) signExtendedByteValue
+ "
+ 16r80 signExtendedByteValue
+ 16r7F signExtendedByteValue
+ 16rFF signExtendedByteValue
+ "
+
"Created: 7.5.1996 / 09:31:52 / cg"
!
+signExtendedLongLongValue
+ "return a smallInteger from sign-extending the 64'th bit.
+ May be useful for communication interfaces"
+
+ (self bitTest:16r8000000000000000) ifTrue:[
+ ^ (self bitAnd:16rFFFFFFFFFFFFFFFF)-16r10000000000000000
+ ].
+ ^ (self bitAnd:16r7FFFFFFFFFFFFFFF)
+
+ "
+ 16r8000000000000000 signExtendedLongLongValue
+ 16r7FFFFFFFFFFFFFFF signExtendedLongLongValue
+ 16rFFFFFFFFFFFFFFFF signExtendedLongLongValue
+ "
+!
+
signExtendedLongValue
"return a smallInteger from sign-extending the 32'th bit.
May be useful for communication interfaces"
- ^ (self bitAnd:16rFFFFFFFF) signExtendedLongValue
+ (self bitTest:16r80000000) ifTrue:[
+ ^ (self bitAnd:16rFFFFFFFF)-16r100000000
+ ].
+ ^ (self bitAnd:16r7FFFFFFF)
+
+ "
+ 16r80000000 signExtendedLongValue
+ 16r7FFFFFFF signExtendedLongValue
+ 16rFFFFFFFF signExtendedLongValue
+ "
!
signExtendedShortValue
@@ -2501,6 +2538,12 @@
^ (self bitAnd:16rFFFF) signExtendedShortValue
+ "
+ 16r8000 signExtendedShortValue
+ 16r7FFF signExtendedShortValue
+ 16rFFFF signExtendedShortValue
+ "
+
"Modified: 7.5.1996 / 09:31:57 / cg"
! !