⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sc_unsigned.h

📁 system C源码 一种替代verilog的语言
💻 H
📖 第 1 页 / 共 5 页
字号:
      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 + -