diff --git a/src/main/resources/org/sablecc/sablecc/lexer.txt b/src/main/resources/org/sablecc/sablecc/lexer.txt
index 3e9a5b324273688d3dcd9bf71322abe45849b6a5..12b4cdf02702829924d7db9dd3c24224b4524db1 100644
--- a/src/main/resources/org/sablecc/sablecc/lexer.txt
+++ b/src/main/resources/org/sablecc/sablecc/lexer.txt
@@ -179,7 +179,7 @@ public class Lexer implements ITokenListContainer
                     // an entry {Low, Up, Id} -> means if Low <= c <= Up -> goto state Id
                     while(low <= high)
                     {
-                        int middle = (low + high) / 2;
+                        int middle = (low + high) >>> 1;
                         int[] tmp2 = tmp1[middle];
 
                         if(c < tmp2[0])
diff --git a/src/main/resources/org/sablecc/sablecc/parser.txt b/src/main/resources/org/sablecc/sablecc/parser.txt
index 82ef6f2445421f70a5864d0435545ad227907bf4..eef5e452c3b3b3541084ea87f5fd07b4175c5c05 100644
--- a/src/main/resources/org/sablecc/sablecc/parser.txt
+++ b/src/main/resources/org/sablecc/sablecc/parser.txt
@@ -236,7 +236,7 @@ Macro:ParserCommon
 
         while(low <= high)
         {
-            int middle = (low + high) / 2;
+            int middle = (low + high) >>> 1;
 
             if(state < gotoTable[index][middle][0])
             {
@@ -308,7 +308,7 @@ Macro:ParserCommon
 
             while(low <= high)
             {
-                int middle = (low + high) / 2;
+                int middle = (low + high) >>> 1;
 
                 if(index < Parser.actionTable[state()][middle][0])
                 {