基础运算
当前Hydra语言支持基础运算如表1所示。
运算符 |
说明 |
|---|---|
整数运算:正号(+)、负号(-)、按位取反(~) |
仅支持位宽<=32的整型。 int<32> a = 32w1; int<32> b; b = +a; // 正号 b = -a; // 负号 b = ~a; // 按位取反 |
算术运算:加法(+)、减法(-)、乘法(*)、除法(/)、求余(%) |
仅支持位宽<=32的整型。 bit<32> a = 32w1; bit<32> b = 32w2; bit<32> c; c = a + b; // 加法 c = a - b; // 减法 c = a * b; // 乘法 c = a / b; // 除法 c = a % b // 求余 |
移位运算:左移(<<)、右移(>>) |
仅支持位宽<=32的整型。 bit<32> a = 32w1; bit<32> b = 32w2; bit<32> c; c = a << 2w2; // 左移 c = a >> 2w2; // 右移 |
位运算:按位与(&)、按位或(|)、按位异或(^) |
仅支持位宽<=32的整型。 bit<32> a = 32w1; bit<32> b = 32w2; bit<32> c; c = a & b; // 按位与 c = a | b; // 按位或 c = a ^ b; // 按位异或 |
比较运算:小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(==)、不等于(!=) |
仅支持位宽<=32的整型,返回值为bool值。 bit<32> a = 32w1; bit<32> b = 32w2; bool d; d = a < b; // 小于 d = a <= b; // 小于等于 d = a > b; // 大于 d = a >= b; // 大于等于 d = a == b; // 等于 d = a != b; // 不等于 |
逻辑运算:与(&&)、或(||)、非(!) |
参与逻辑运算的变量必须是bool值。 bool d; d = true && false; // 与 d = true || false; // 或 d = !true; // 非 |
父主题: OVS场景数据面Hydra编程