自然语言的解释还没有码好,预计明天发。
在《求问关于M的事情》一贴中
@lhy7715 提到可否用 C 语言来描述一下,下面放代码:
struct storage_area {
unsigned long long int padding; /* off+0xC0 */
unsigned /* little_endian */ short int rand_seed; /* off+0xC8 */
struct value_var M, Ans, A, B, C, D, E, F, X, Y; /* off+0xCA */
};
struct value_var {
unsigned char data[8]; /* BCD code, magnitude */
unsigned char exp; /* BCD code, two's complement */
unsigned char sign;
}
#define odd(x) ((x) & 0x1)
#define bcd2int(bcd) ((((bcd) >> 4) & 0xf)*10+((bcd) & 0xf))
#define get_value_var_type(x) ((x).data[0] >> 4)
#define get_value_var_digit(x, digit_no) ((x).data[(digit_no)/2] >> (odd((digit_no)) ? 0 : 4) & 0xF) /* 1 <= digit_no <= 15 */
/* Values for value_var.sign */
#define VALUE_VAR_SIGN_POS_NEG 0x0 /* 0 <= x < 1 */
#define VALUE_VAR_SIGN_POS_POS 0x1 /* x > 1 */
#define VALUE_VAR_SIGN_NEG_NEG 0x5 /* -1 < x < 0 */
#define VALUE_VAR_SIGN_NEG_POS 0x6 /* x <= -1 */
看不懂的等我的自然语言详解。