[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000273] int32 + bignum



���Ȥ���Ǥ�

Int32��Fixnum��Bignum�α黻��̤η��Ϥʤ���Ȼפ��ޤ���??

  * ����Ĺ��û�����˹�碌�� # ���Ϥ�����Ƥޤ�
    (1) IntXX[Integer[intXX] op Integer[other]] # �����
    (2) IntXX[intXX op IntXX[other]]            # �̤θ���

  * ����Ĺ��Ĺ�����˹�碌��
      int16 + 1 ��Fixint�ˤʤ�ΤǤ��줷���ʤ��Ȼפ�

  * abs ��Ȥä����
      (int16[0] + 2**14).type == Int16
      (int16[0] + 2**15).type == Fixint # MAXINT16 == 2**15-1
      �Ȥʤ�Τǥ��ڥ��ɤη���������Ƚ�Ǥ��Ĥ��ʤ�

�ʤ� Klass[] �ϥ��󥹥ȥ饯���Ǥ���

�⤷����Ĺ��û�����ˤ���ʤ�(1)��(2)�Τɤ��餬�����Ǥ���??
ξ�Ԥϥ�󥸥����å��Υ����ߥ󥰤˰㤤�����ꡢ(1)�ϱ黻���
�Τߥ����å���(2)�ϱ黻���ˤ�����å����ޤ�(®�٤ˤϤ���ۤ�
���ϽФޤ���)���㤨�� i = 2**15 �ΤȤ��� i-int16 �ε�ư����
���ޤ���(2)�ξ�硢Int16[i] �λ�����Overflow�ˤʤ�ޤ�����
(1)�ʤ� int16 < 1 �ΤȤ���Overflow�Ǥ����ɤ��餫�ȸ�����(1)
��Fortran��C�˻��Ƥ�ȸ����뤫���Τ�ޤ���

-- gotoken