static ID id_to, id_by; void rb_num_zerodiv(void) { rb_raise(rb_eZeroDivError, "divided by 0"); } enum ruby_num_rounding_mode rb_num_get_rounding_option(VALUE opts) { static ID round_kwds[1]; VALUE rounding; VALUE str; const char *s; if (!NIL_P(opts)) { if (!round_kwd...
+ * We could mask off the remaining bits before testing the active bits, but + * currently those bits must be zeroes, so masking would just add cycles. + */ +#define NUMERIC_EXT_SIGN_MASK 0xF000 /* high bits plus NaN/Inf flag bits */ +#define NUMERIC_NAN 0xC000 +#define NUMERIC...
Putting all of this together then you can see that we have a whole range of integer types at our disposal. These include integer types such asUInt8(an unsigned integer type using 8 bits of storage),Int16(a signed integer, – notice it has no leadingU– using 16 bits of storage) orUI...