HomeForumSourceResearchGuide
Sign in to contribute to source. how it works
Type definition file data.SignedInt4 by barry
expand copy to clipboardexpand
/* { "description" : "An object to represent and manipulate signed 32-bit integers (Dana primitive integers are all unsigned). These values are internally stored using two's complement. In general, Dana programs will use only int and dec types for their internal logic and will avoid the use of signed integers; this API is primarily intended to support the import and export of signed integers to external systems or data formats." } */

interface SignedInt4 {
	/* { "@description" : "Creates a new 32-bit signed integer instance, initialised either from an absolute value (val) or from a positive value which should be made negative (neg). An absolute value is assumed not to need any treatment and is set directly as the internal value of the signed integer (via new SignedInt4(n)). This value may either be intended as a positive integer, or a value from the getValue() function of another signed integer instance. A negative value (e.g. using new SignedInt4(neg = n)) is assumed to be a positive unsigned integer at the point of input, such as the value 4, which is converted to a negative value in the SignedInt4 instance, such as -4." } */
	SignedInt4(opt int4 val, opt int4 neg)
	
	/* { "@description" : "Subtract a given 32-bit signed integer value from this instance's current value. The instance's current value is modified to equal the result, which is also returned." } */
	int4 subtract(int4 val)
	
	/* { "@description" : "Add a given 32-bit signed integer value to this instance's current value. The instance's current value is modified to equal the result, which is also returned." } */
	int4 add(int4 val)

	/* { "@description" : "Multiply this instance's current value by a given 32-bit signed integer value. The instance's current value is modified to equal the result, which is also returned." } */
	int4 multiply(int4 val)

	/* { "@description" : "Divide this instance's current value by a given 32-bit signed integer value. The instance's current value is modified to equal the result, which is also returned." } */
	int4 divide(int4 val)

	/* { "@description" : "Get the value of this 32-bit signed integer, as an int4, suitable for use as a parameter to other SignedInt4 instances." } */
	int4 getValue()

	/* { "@description" : "Set the value of this 32-bit signed integer." } */
	void setValue(int4 v)

	/* { "@description" : "Test is this signed integer instance currently holds a negative value." } */
	bool isNegative()

	/* { "@description" : "Invert the sign of this signed integer instance, changing it from positive to negative, or vice-versa." } */
	void invert()
	
	/* { "@description" : "Get the raw bytes of this signed integer instance." } */
	byte[] getBytes()
	
	}
Revision history
To propose a new revision to this entity, use dana source put -ut your/new/version.dn -n data.SignedInt4 -m "reason for update" -u yourUsername
Version 2 (this version) by barry
Notes for this version: Updates docstrings to clarify various details
Version 1 by barry