diff --git a/src/main/java/org/sablecc/sablecc/CharSet.java b/src/main/java/org/sablecc/sablecc/CharSet.java
index b43bd7b820496e530d14e06d0897475db45630ad..9984b7d75d6e020dc742b989123d1113f40c909e 100644
--- a/src/main/java/org/sablecc/sablecc/CharSet.java
+++ b/src/main/java/org/sablecc/sablecc/CharSet.java
@@ -47,7 +47,7 @@ public class CharSet implements Cloneable
 
     while(high >= low)
     {
-      int middle = (high + low) / 2;
+      int middle = (high + low) >>> 1;
 
       interval2 = (Interval) intervals.elementAt(middle);
 
diff --git a/src/main/java/org/sablecc/sablecc/IntSet.java b/src/main/java/org/sablecc/sablecc/IntSet.java
index 2c44fd3a277ab34c29ce57d9ed404ffec4e8a0ee..1283f989dc838bebdd6fe5800a3e91e02ac35099 100644
--- a/src/main/java/org/sablecc/sablecc/IntSet.java
+++ b/src/main/java/org/sablecc/sablecc/IntSet.java
@@ -125,7 +125,7 @@ public class IntSet
 
     while(low <= high)
     {
-      int middle = (low + high) / 2;
+      int middle = (low + high) >>> 1;
 
       if(bit < elements[middle])
       {