SystemC Operators

 Arithmetic Operators 


Arithmetic operators are used to perform arithmetic operation on numbers.

Operator
Description
+
Addition
Add the two operands.
-
Subtraction
Subtract the second operand from the first operand.
*
Multiplication
Multiply the two operands.
/
Division
Divide the first operand by the second operand.
%
Modulus
Modulo operation.


Example-1: Addition Operator


#include "systemc.h"
int sc_main (int argc, char* argv[]) {
  int a = 10;
  int b = 20;
  int c;
  
  //addition operator,
  c = a + b;
  
  cout <<"Value of c = " << c << endl;
  return 0;// Terminate simulation
}

Simulator Output:

Value of c = 30

Execute the above code on 

 Increment and Decrement  


Operator
Description
++
Increment
Increment the operand by one and store the result in the operand.
--
Decrement
Decrement the operand by one and store the result in the operand.
Pre Increment and Pre Decrement:
In Pre Increment/Decrement, operator is specified before the operand.
The pre increment/decrement performs the operation first and returns the new value.

Post Increment and Post Decrement:
In Post Increment/Decrement, operator is specified after the operand.
The post increment/decrement  returns the old value while the new value of the operation is stored in the operand.

Example-1: Pre-Increment


#include "systemc.h"
int sc_main (int argc, char* argv[]) {
  int a = 5;

  //pre-increment
  cout <<"Value of a = " << ++a << endl;
  return 0;// Terminate simulation
}

Simulator Output:

Value of a = 6
Execute the above code on 

Example-2: Post-Increment


#include "systemc.h"
int sc_main (int argc, char* argv[]) {
  int a = 5;

  cout <<"Value of a = " << a++ << endl;
  return 0;// Terminate simulation
}

Simulator Output:

Value of a = 5
Execute the above code on 



 Bitwise Operators 


Operator
Description
&
AND operator
Calculate the bitwise AND of the two operands.
|
OR  operator
Calculate the bitwise OR of the two operands.
^
XOR operator
Calculate the bitwise XOR of the two operands.


Example-1: Bitwise AND Operator


#include "systemc.h"
int sc_main (int argc, char* argv[]) {
  int a = 1;
  int b = 1;
  int c;
  
  //bitwise AND operator,
  c = a & b;
  
  cout <<"Value of c = " << c << endl;
  return 0;// Terminate simulation
}

Simulator Output:

Value of c = 1

Execute the above code on 



 Arithmetic and Bitwise assignment  


Operator
Description
+=
Add the two operands; assign the result to the first operand.
-=
Subtract the second operand from the first operand; assign the result to the first operand.
*=
Multiply the two operands; assign the result to the first operand.
/=
Divide the first operand by the second operand; assign the result to the first operand.
%=
Modulo operation; assign the result to the first operand.
&=
Calculate the bitwise AND of the two operands; assign the result to the first operand.
|=
Calculate the bitwise OR of the two operands; assign the result to the first operand.
^=
Calculate the bitwise XOR of the two operands; assign the result to the first operand.

Example-1: += Operator


#include "systemc.h"
int sc_main (int argc, char* argv[]) {
  int a = 10;
  int b = 20;
  
  //+= operator, Arithmetic and bitwise assignment
  a += b;
  
  cout <<"Value of a = " << a << endl;
  return 0;// Terminate simulation
}

Simulator Output:


Value of a = 30
Execute the above code on 

Example-2: &= Operator


#include "systemc.h"
int sc_main (int argc, char* argv[]) {
  int a = 1;
  int b = 0;
  
  //&= operator, Arithmetic and bitwise assignment
  a &= b;
  
  cout <<"Value of a = " << a << endl;
  return 0;// Terminate simulation
}

Simulator Output:


Value of a = 0

Execute the above code on 



 Equality and Relation 


Operator
Description
==
equal
Return true if the operands are equal.
!=
not equal
Return true if the operands are not equal.
< 
less than
Return true if the first operand is less than the second operand.
<=
less than or equal to
Return true if the first operand is less than or equal to the second operand.
> 
greater than
Return true if the first operand is greater than the second operand.
>=
greater than or equal to
Return true if the first operand is greater than or equal to the second operand.

Example-1: == Operator


#include "systemc.h"
int sc_main (int argc, char* argv[]) {
  int a = 10;
  int b = 20;
  
  // == operator, Equality and relation 
  if(a == b)  
    cout <<"a is equals to b"<< endl;
  else
    cout <<"a is not equals to b"<< endl;
  return 0;// Terminate simulation
}

Simulator Output:


a is not equals to b

Execute the above code on