diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp
index 462942d768a8f30cb4f51c690dc073804a55c402..f8494bfa067bcdfaaccfbc317797c97d3f4ae53c 100644
--- a/Marlin/src/module/temperature.cpp
+++ b/Marlin/src/module/temperature.cpp
@@ -1191,9 +1191,8 @@ void Temperature::manage_heater() {
 #define SCAN_THERMISTOR_TABLE(TBL,LEN) do{                             \
   uint8_t l = 0, r = LEN, m;                                           \
   for (;;) {                                                           \
-    m = l + r;                                                         \
+    m = (l + r) >> 1;                                                  \
     if (!m) return short(pgm_read_word(&TBL[0][1]));                   \
-    m >>= 1;                                                           \
     if (m == l || m == r) return short(pgm_read_word(&TBL[LEN-1][1])); \
     short v00 = pgm_read_word(&TBL[m-1][0]),                           \
           v10 = pgm_read_word(&TBL[m-0][0]);                           \