Practical Modulo Operations
Handling Different Number Types
Integer Modulus Operations
public class IntegerModulus {
public static void main(String[] args) {
// Positive integer modulus
System.out.println(17 % 5); // Result: 2
// Negative integer modulus
System.out.println(-17 % 5); // Result: -2
System.out.println(17 % -5); // Result: 2
}
}
Common Practical Applications
1. Cyclic Array Index
public class CyclicArrayExample {
public static void main(String[] args) {
int[] array = {10, 20, 30, 40, 50};
int index = 7;
// Wrap around array using modulus
int actualIndex = index % array.length;
System.out.println(array[actualIndex]); // Prints: 30
}
}
2. Even/Odd Number Checking
public class EvenOddCheck {
public static boolean isEven(int number) {
return number % 2 == 0;
}
public static void main(String[] args) {
System.out.println(isEven(10)); // true
System.out.println(isEven(15)); // false
}
}
Advanced Modulus Techniques
Modulus with Floating-Point Numbers
public class FloatingPointModulus {
public static void main(String[] args) {
double result = 10.5 % 3.2;
System.out.println(result); // Result depends on implementation
}
}
Modulus Operation Patterns
graph TD
A[Modulus Operation] --> B{Input Type}
B -->|Integer| C[Standard Remainder Calculation]
B -->|Floating Point| D[Precision-Based Calculation]
B -->|Negative Numbers| E[Sign-Aware Remainder]
Operation Type |
Performance |
Complexity |
Integer Modulus |
Very Fast |
O(1) |
Floating Point Modulus |
Slower |
O(1) with precision overhead |
Large Number Modulus |
Moderate |
Depends on number size |
Best Practices
- Use modulus for cyclic operations
- Be cautious with floating-point modulus
- Understand language-specific implementation
- Consider performance for large-scale operations
Error Handling
public class ModulusErrorHandling {
public static int safeDivision(int dividend, int divisor) {
if (divisor == 0) {
throw new ArithmeticException("Cannot divide by zero");
}
return dividend % divisor;
}
}
Note: LabEx recommends careful implementation of modulus operations in production code.