fix for issue 354
diff --git a/include/fast_float/ascii_number.h b/include/fast_float/ascii_number.h
index 4e1ce3a..cac9160 100644
--- a/include/fast_float/ascii_number.h
+++ b/include/fast_float/ascii_number.h
@@ -532,6 +532,9 @@
         str[j] = static_cast<uint8_t>(p[j]);
       }
       digits = std::bit_cast<uint32_t>(str);
+#if FASTFLOAT_IS_BIG_ENDIAN
+      digits = byteswap(digits);
+#endif
     }
 #else
     if (false) {
@@ -539,6 +542,9 @@
 #endif
     else if (len >= 4) {
       ::memcpy(&digits, p, 4);
+#if FASTFLOAT_IS_BIG_ENDIAN
+      digits = byteswap(digits);
+#endif
     } else {
       uint32_t b0 = static_cast<uint8_t>(p[0]);
       uint32_t b1 = (len > 1) ? static_cast<uint8_t>(p[1]) : 0xFFu;