diff --git a/core/include/fxcrt/fx_ext.h b/core/include/fxcrt/fx_ext.h
index 0853c89..d36ecfd 100644
--- a/core/include/fxcrt/fx_ext.h
+++ b/core/include/fxcrt/fx_ext.h
@@ -10,9 +10,8 @@
 #include "fx_string.h"
 #include "fx_system.h"
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include <cctype>
+#include <cwctype>
 
 FX_FLOAT FXSYS_tan(FX_FLOAT a);
 FX_FLOAT FXSYS_logb(FX_FLOAT b, FX_FLOAT x);
@@ -39,6 +38,25 @@
   return ch < 'a' || ch > 'z' ? ch : (ch - 0x20);
 }
 
+inline int FXSYS_toHexDigit(const FX_CHAR c) {
+  if (!std::isxdigit(c))
+    return 0;
+  char upchar = std::toupper(c);
+  return upchar > '9' ? upchar - 'A' + 10 : upchar - '0';
+}
+
+inline int FXSYS_toDecimalDigit(const FX_CHAR c) {
+  if (!std::isdigit(c))
+    return 0;
+  return c - '0';
+}
+
+inline int FXSYS_toDecimalDigitWide(const FX_WCHAR c) {
+  if (!std::iswdigit(c))
+    return 0;
+  return c - L'0';
+}
+
 FX_DWORD FX_HashCode_String_GetA(const FX_CHAR* pStr,
                                  int32_t iLength,
                                  FX_BOOL bIgnoreCase = FALSE);
@@ -46,13 +64,6 @@
                                  int32_t iLength,
                                  FX_BOOL bIgnoreCase = FALSE);
 
-#ifdef __cplusplus
-}
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 void* FX_Random_MT_Start(FX_DWORD dwSeed);
 
 FX_DWORD FX_Random_MT_Generate(void* pContext);
@@ -64,12 +75,6 @@
 void FX_Random_GenerateMT(FX_DWORD* pBuffer, int32_t iCount);
 
 void FX_Random_GenerateCrypto(FX_DWORD* pBuffer, int32_t iCount);
-#ifdef __cplusplus
-}
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
 
 typedef struct FX_GUID {
   FX_DWORD data1;
@@ -84,9 +89,7 @@
 void FX_GUID_ToString(FX_LPCGUID pGUID,
                       CFX_ByteString& bsStr,
                       FX_BOOL bSeparator = TRUE);
-#ifdef __cplusplus
-}
-#endif
+
 template <class baseType>
 class CFX_SSortTemplate {
  public:
