---
title: 基础运算
description: "当前Hydra语言支持基础运算如表1所示。"
url: https://www.hikunpeng.com/document/detail/zh/flexda/devguide/dpak_dev0040.html
sourcePath: /source/zh/flexda/devguide/dpak_dev0040.html
indexId: c49bb38e72620875010b09e55a80ebd1e3820e0420a20e94dbf615729de1e93344
---
# 基础运算

当前Hydra语言支持基础运算如表1所示。


**表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; // 非 |
