📄 sc_unsigned.h
字号:
s OP u -> u s OP u -> s u OP s -> u u OP s -> s s OP s -> s s OP s -> s u OP un = un OP u -> u u OP un = un OP u -> u u OP sn = sn OP u -> u u OP sn = sn OP u -> s s OP un = un OP s -> s s OP un = un OP s -> s s OP sn = sn OP s -> s s OP sn = sn OP s -> s In the new semantics, the result is u if both operands are u; the result is s otherwise. The only exception is subtraction. The result of a subtraction is always s. The old semantics is like C/C++ semantics on integer types; the new semantics is due to the VSIA C/C++ data types standard. */ // ARITHMETIC OPERATORS: // ADDition operators: friend sc_signed operator + (const sc_unsigned& u, const sc_signed& v); friend sc_signed operator + (const sc_signed& u, const sc_unsigned& v); friend sc_unsigned operator + (const sc_unsigned& u, const sc_unsigned& v); friend sc_signed operator + (const sc_unsigned& u, int64 v); friend sc_unsigned operator + (const sc_unsigned& u, uint64 v); friend sc_signed operator + (const sc_unsigned& u, long v); friend sc_unsigned operator + (const sc_unsigned& u, unsigned long v); friend sc_signed operator + (const sc_unsigned& u, int v); friend sc_unsigned operator + (const sc_unsigned& u, unsigned int v) { return operator+(u, (unsigned long) v); } friend sc_signed operator + (int64 u, const sc_unsigned& v); friend sc_unsigned operator + (uint64 u, const sc_unsigned& v); friend sc_signed operator + (long u, const sc_unsigned& v); friend sc_unsigned operator + (unsigned long u, const sc_unsigned& v); friend sc_signed operator + (int u, const sc_unsigned& v); friend sc_unsigned operator + (unsigned int u, const sc_unsigned& v) { return operator+((unsigned long) u, v); } const sc_unsigned& operator += (const sc_signed& v); const sc_unsigned& operator += (const sc_unsigned& v); const sc_unsigned& operator += (int64 v); const sc_unsigned& operator += (uint64 v); const sc_unsigned& operator += (long v); const sc_unsigned& operator += (unsigned long v); const sc_unsigned& operator += (int v) { return operator+=((long) v); } const sc_unsigned& operator += (unsigned int v) { return operator+=((unsigned long) v); } friend sc_unsigned operator + (const sc_unsigned& u, const sc_uint_base& v); friend sc_signed operator + (const sc_unsigned& u, const sc_int_base& v); friend sc_unsigned operator + (const sc_uint_base& u, const sc_unsigned& v); friend sc_signed operator + (const sc_int_base& u, const sc_unsigned& v); const sc_unsigned& operator += (const sc_int_base& v); const sc_unsigned& operator += (const sc_uint_base& v); // SUBtraction operators: friend sc_signed operator - (const sc_unsigned& u, const sc_signed& v); friend sc_signed operator - (const sc_signed& u, const sc_unsigned& v); friend sc_signed operator - (const sc_unsigned& u, const sc_unsigned& v); friend sc_signed operator - (const sc_unsigned& u, int64 v); friend sc_signed operator - (const sc_unsigned& u, uint64 v); friend sc_signed operator - (const sc_unsigned& u, long v); friend sc_signed operator - (const sc_unsigned& u, unsigned long v); friend sc_signed operator - (const sc_unsigned& u, int v); friend sc_signed operator - (const sc_unsigned& u, unsigned int v); friend sc_signed operator - (int64 u, const sc_unsigned& v); friend sc_signed operator - (uint64 u, const sc_unsigned& v); friend sc_signed operator - (long u, const sc_unsigned& v); friend sc_signed operator - (unsigned long u, const sc_unsigned& v); friend sc_signed operator - (int u, const sc_unsigned& v); friend sc_signed operator - (unsigned int u, const sc_unsigned& v); const sc_unsigned& operator -= (const sc_signed& v); const sc_unsigned& operator -= (const sc_unsigned& v); const sc_unsigned& operator -= (int64 v); const sc_unsigned& operator -= (uint64 v); const sc_unsigned& operator -= (long v); const sc_unsigned& operator -= (unsigned long v); const sc_unsigned& operator -= (int v) { return operator-=((long) v); } const sc_unsigned& operator -= (unsigned int v) { return operator-=((unsigned long) v); } friend sc_signed operator - (const sc_unsigned& u, const sc_uint_base& v); friend sc_signed operator - (const sc_unsigned& u, const sc_int_base& v); friend sc_signed operator - (const sc_uint_base& u, const sc_unsigned& v); friend sc_signed operator - (const sc_int_base& u, const sc_unsigned& v); const sc_unsigned& operator -= (const sc_int_base& v); const sc_unsigned& operator -= (const sc_uint_base& v); // MULtiplication operators: friend sc_signed operator * (const sc_unsigned& u, const sc_signed& v); friend sc_signed operator * (const sc_signed& u, const sc_unsigned& v); friend sc_unsigned operator * (const sc_unsigned& u, const sc_unsigned& v); friend sc_signed operator * (const sc_unsigned& u, int64 v); friend sc_unsigned operator * (const sc_unsigned& u, uint64 v); friend sc_signed operator * (const sc_unsigned& u, long v); friend sc_unsigned operator * (const sc_unsigned& u, unsigned long v); friend sc_signed operator * (const sc_unsigned& u, int v); friend sc_unsigned operator * (const sc_unsigned& u, unsigned int v) { return operator*(u, (unsigned long) v); } friend sc_signed operator * (int64 u, const sc_unsigned& v); friend sc_unsigned operator * (uint64 u, const sc_unsigned& v); friend sc_signed operator * (long u, const sc_unsigned& v); friend sc_unsigned operator * (unsigned long u, const sc_unsigned& v); friend sc_signed operator * (int u, const sc_unsigned& v); friend sc_unsigned operator * (unsigned int u, const sc_unsigned& v) { return operator*((unsigned long) u, v); } const sc_unsigned& operator *= (const sc_signed& v); const sc_unsigned& operator *= (const sc_unsigned& v); const sc_unsigned& operator *= (int64 v); const sc_unsigned& operator *= (uint64 v); const sc_unsigned& operator *= (long v); const sc_unsigned& operator *= (unsigned long v); const sc_unsigned& operator *= (int v) { return operator*=((long) v); } const sc_unsigned& operator *= (unsigned int v) { return operator*=((unsigned long) v); } friend sc_unsigned operator * (const sc_unsigned& u, const sc_uint_base& v); friend sc_signed operator * (const sc_unsigned& u, const sc_int_base& v); friend sc_unsigned operator * (const sc_uint_base& u, const sc_unsigned& v); friend sc_signed operator * (const sc_int_base& u, const sc_unsigned& v); const sc_unsigned& operator *= (const sc_int_base& v); const sc_unsigned& operator *= (const sc_uint_base& v); // DIVision operators: friend sc_signed operator / (const sc_unsigned& u, const sc_signed& v); friend sc_signed operator / (const sc_signed& u, const sc_unsigned& v); friend sc_unsigned operator / (const sc_unsigned& u, const sc_unsigned& v); friend sc_signed operator / (const sc_unsigned& u, int64 v); friend sc_unsigned operator / (const sc_unsigned& u, uint64 v); friend sc_signed operator / (const sc_unsigned& u, long v); friend sc_unsigned operator / (const sc_unsigned& u, unsigned long v); friend sc_signed operator / (const sc_unsigned& u, int v); friend sc_unsigned operator / (const sc_unsigned& u, unsigned int v) { return operator/(u, (unsigned long) v); } friend sc_signed operator / (int64 u, const sc_unsigned& v); friend sc_unsigned operator / (uint64 u, const sc_unsigned& v); friend sc_signed operator / (long u, const sc_unsigned& v); friend sc_unsigned operator / (unsigned long u, const sc_unsigned& v); friend sc_signed operator / (int u, const sc_unsigned& v); friend sc_unsigned operator / (unsigned int u, const sc_unsigned& v) { return operator/((unsigned long) u, v); } const sc_unsigned& operator /= (const sc_signed& v); const sc_unsigned& operator /= (const sc_unsigned& v); const sc_unsigned& operator /= (int64 v); const sc_unsigned& operator /= (uint64 v); const sc_unsigned& operator /= (long v); const sc_unsigned& operator /= (unsigned long v); const sc_unsigned& operator /= (int v) { return operator/=((long) v); } const sc_unsigned& operator /= (unsigned int v) { return operator/=((unsigned long) v); } friend sc_unsigned operator / (const sc_unsigned& u, const sc_uint_base& v); friend sc_signed operator / (const sc_unsigned& u, const sc_int_base& v); friend sc_unsigned operator / (const sc_uint_base& u, const sc_unsigned& v); friend sc_signed operator / (const sc_int_base& u, const sc_unsigned& v); const sc_unsigned& operator /= (const sc_int_base& v); const sc_unsigned& operator /= (const sc_uint_base& v); // MODulo operators: friend sc_signed operator % (const sc_unsigned& u, const sc_signed& v); friend sc_signed operator % (const sc_signed& u, const sc_unsigned& v); friend sc_unsigned operator % (const sc_unsigned& u, const sc_unsigned& v); friend sc_signed operator % (const sc_unsigned& u, int64 v); friend sc_unsigned operator % (const sc_unsigned& u, uint64 v); friend sc_signed operator % (const sc_unsigned& u, long v); friend sc_unsigned operator % (const sc_unsigned& u, unsigned long v); friend sc_signed operator % (const sc_unsigned& u, int v); friend sc_unsigned operator % (const sc_unsigned& u, unsigned int v) { return operator%(u, (unsigned long) v); } friend sc_signed operator % (int64 u, const sc_unsigned& v); friend sc_unsigned operator % (uint64 u, const sc_unsigned& v); friend sc_signed operator % (long u, const sc_unsigned& v); friend sc_unsigned operator % (unsigned long u, const sc_unsigned& v); friend sc_signed operator % (int u, const sc_unsigned& v); friend sc_unsigned operator % (unsigned int u, const sc_unsigned& v) { return operator%((unsigned long) u, v); } const sc_unsigned& operator %= (const sc_signed& v); const sc_unsigned& operator %= (const sc_unsigned& v); const sc_unsigned& operator %= (int64 v); const sc_unsigned& operator %= (uint64 v); const sc_unsigned& operator %= (long v); const sc_unsigned& operator %= (unsigned long v); const sc_unsigned& operator %= (int v) { return operator%=((long) v); } const sc_unsigned& operator %= (unsigned int v) { return operator%=((unsigned long) v); } friend sc_unsigned operator % (const sc_unsigned& u, const sc_uint_base& v); friend sc_signed operator % (const sc_unsigned& u, const sc_int_base& v); friend sc_unsigned operator % (const sc_uint_base& u, const sc_unsigned& v); friend sc_signed operator % (const sc_int_base& u, const sc_unsigned& v); const sc_unsigned& operator %= (const sc_int_base& v); const sc_unsigned& operator %= (const sc_uint_base& v); // BITWISE OPERATORS: // Bitwise AND operators: friend sc_signed operator & (const sc_unsigned& u, const sc_signed& v); friend sc_signed operator & (const sc_signed& u, const sc_unsigned& v); friend sc_unsigned operator & (const sc_unsigned& u, const sc_unsigned& v); friend sc_signed operator & (const sc_unsigned& u, int64 v); friend sc_unsigned operator & (const sc_unsigned& u, uint64 v); friend sc_signed operator & (const sc_unsigned& u, long v); friend sc_unsigned operator & (const sc_unsigned& u, unsigned long v); friend sc_signed operator & (const sc_unsigned& u, int v); friend sc_unsigned operator & (const sc_unsigned& u, unsigned int v) { return operator&(u, (unsigned long) v); } friend sc_signed operator & (int64 u, const sc_unsigned& v); friend sc_unsigned operator & (uint64 u, const sc_unsigned& v); friend sc_signed operator & (long u, const sc_unsigned& v); friend sc_unsigned operator & (unsigned long u, const sc_unsigned& v); friend sc_signed operator & (int u, const sc_unsigned& v); friend sc_unsigned operator & (unsigned int u, const sc_unsigned& v) { return operator&((unsigned long) u, v); } const sc_unsigned& operator &= (const sc_signed& v); const sc_unsigned& operator &= (const sc_unsigned& v); const sc_unsigned& operator &= (int64 v); const sc_unsigned& operator &= (uint64 v); const sc_unsigned& operator &= (long v); const sc_unsigned& operator &= (unsigned long v); const sc_unsigned& operator &= (int v) { return operator&=((long) v); } const sc_unsigned& operator &= (unsigned int v) { return operator&=((unsigned long) v); } friend sc_unsigned operator & (const sc_unsigned& u, const sc_uint_base& v); friend sc_signed operator & (const sc_unsigned& u, const sc_int_base& v); friend sc_unsigned operator & (const sc_uint_base& u, const sc_unsigned& v); friend sc_signed operator & (const sc_int_base& u, const sc_unsigned& v); const sc_unsigned& operator &= (const sc_int_base& v); const sc_unsigned& operator &= (const sc_uint_base& v); // Bitwise OR operators: friend sc_signed operator | (const sc_unsigned& u, const sc_signed& v); friend sc_signed operator | (const sc_signed& u, const sc_unsigned& v); friend sc_unsigned operator | (const sc_unsigned& u, const sc_unsigned& v); friend sc_signed operator | (const sc_unsigned& u, int64 v); friend sc_unsigned operator | (const sc_unsigned& u, uint64 v); friend sc_signed operator | (const sc_unsigned& u, long v); friend sc_unsigned operator | (const sc_unsigned& u, unsigned long v); friend sc_signed operator | (const sc_unsigned& u, int v); friend sc_unsigned operator | (const sc_unsigned& u, unsigned int v) { return operator|(u, (unsigned long) v); } friend sc_signed operator | (int64 u, const sc_unsigned& v); friend sc_unsigned operator | (uint64 u, const sc_unsigned& v); friend sc_signed operator | (long u, const sc_unsigned& v); friend sc_unsigned operator | (unsigned long u, const sc_unsigned& v); friend sc_signed operator | (int u, const sc_unsigned& v); friend sc_unsigned operator | (unsigned int u, const sc_unsigned& v) { return operator|((unsigned long) u, v); } const sc_unsigned& operator |= (const sc_signed& v); const sc_unsigned& operator |= (const sc_unsigned& v); const sc_unsigned& operator |= (int64 v); const sc_unsigned& operator |= (uint64 v); const sc_unsigned& operator |= (long v); const sc_unsigned& operator |= (unsigned long v); const sc_unsigned& operator |= (int v) { return operator|=((long) v); } const sc_unsigned& operator |= (unsigned int v) { return operator|=((unsigned long) v); } friend sc_unsigned operator | (const sc_unsigned& u, const sc_uint_base& v); friend sc_signed operator | (const sc_unsigned& u, const sc_int_base& v); friend sc_unsigned operator | (const sc_uint_base& u, const sc_unsigned& v); friend sc_signed operator | (const sc_int_base& u, const sc_unsigned& v); const sc_unsigned& operator |= (const sc_int_base& v); const sc_unsigned& operator |= (const sc_uint_base& v); // Bitwise XOR operators: friend sc_signed operator ^ (const sc_unsigned& u, const sc_signed& v); friend sc_signed operator ^ (const sc_signed& u, const sc_unsigned& v); friend sc_unsigned operator ^ (const sc_unsigned& u, const sc_unsigned& v); friend sc_signed operator ^ (const sc_unsigned& u, int64 v); friend sc_unsigned operator ^ (const sc_unsigned& u, uint64 v); friend sc_signed operator ^ (const sc_unsigned& u, long v); friend sc_unsigned operator ^ (const sc_unsigned& u, unsigned long v); friend sc_signed operator ^ (const sc_unsigned& u, int v); friend sc_unsigned operator ^ (const sc_unsigned& u, unsigned int v) { return operator^(u, (unsigned long
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -