// ==========================================================================
// $Id: integer_operation.cpp,v 1.3 2016/09/10 19:09:37 jlang Exp $
// CSI2372 example Code for lecture 1
// ==========================================================================
// (C)opyright:
//
//   Jochen Lang
//   SITE, University of Ottawa
//   800 King Edward Ave.
//   Ottawa, On., K1N 6N5
//   Canada. 
//   http://www.site.uottawa.ca
// 
// Creator: jlang (Jochen Lang)
// Email:   jlang@site.uottawa.ca
// ==========================================================================
// $Log: integer_operation.cpp,v $
// Revision 1.3  2016/09/10 19:09:37  jlang
// Separated modulo operation from mixing signs
//
// Revision 1.2  2007/09/10 14:14:26  jlang
// Change of values
//
// Revision 1.1  2006/09/07 20:06:17  jlang
// Initial check-in lecture 0-2
//
//
// ==========================================================================
#include <iostream>

using std::cout;
using std::endl;

int main()
{
  int iVal=23, iDiv = 5;
  // Mixed tyes
	double dVal=5.0;
	double dResA = iVal/iDiv; 
	int iRes = iVal/dVal;
	double dResB = iVal/dVal;
  cout << dResA << endl;
  cout << iRes << endl;	
  cout << dResB << endl;
 	cout << "=================================================" << endl;
	// Integral division
  cout << iVal/iDiv << endl;
  cout << iVal%iDiv << endl;
  cout << iVal/-iDiv << endl;
  cout << iVal%-iDiv << endl;
  cout << "=================================================" << endl;
	// Mixing signs  
  iVal = -5;
	unsigned int uiVal = 4294967295u; // 2^32-1
	unsigned int uiRes = uiVal + iVal; 
	iRes = uiVal + iVal; 
	cout << uiRes << endl;
	cout << iRes << endl;
  return 0;
}
