diff --git a/libpldm/utils.c b/libpldm/utils.c
index 398a5da..ef49f6a 100644
--- a/libpldm/utils.c
+++ b/libpldm/utils.c
@@ -107,4 +107,36 @@
 		POINTER_MOVE(rc, buffer, buffer_size, original_size);
 	}
 	return original_size - buffer_size;
-}
\ No newline at end of file
+}
+
+uint8_t bcd2dec8(uint8_t bcd)
+{
+	uint8_t dec = (bcd >> 4) * 10 + (bcd & 0x0f);
+	return dec;
+}
+
+uint8_t dec2bcd8(uint8_t dec)
+{
+	uint8_t bcd = (dec % 10) | (dec / 10) << 4;
+	return bcd;
+}
+
+uint16_t bcd2dec16(uint16_t bcd)
+{
+	return bcd2dec8(bcd >> 8) * 100 + bcd2dec8(bcd & 0xff);
+}
+
+uint16_t dec2bcd16(uint16_t dec)
+{
+	return dec2bcd8(dec % 100) | dec2bcd8(dec / 100) << 8;
+}
+
+uint32_t bcd2dec32(uint32_t bcd)
+{
+	return bcd2dec16(bcd >> 16) * 10000 + bcd2dec16(bcd & 0xffff);
+}
+
+uint32_t dec2bcd32(uint32_t dec)
+{
+	return dec2bcd16(dec % 10000) | dec2bcd16(dec / 10000) << 16;
+}
diff --git a/libpldm/utils.h b/libpldm/utils.h
index 2c2d365..73bbf38 100644
--- a/libpldm/utils.h
+++ b/libpldm/utils.h
@@ -26,6 +26,42 @@
  */
 int ver2str(const ver32_t *version, char *buffer, size_t buffer_size);
 
+/** @breif Convert bcd number(uint8_t) to decimal
+ *  @param[in] bcd - bcd number
+ *  @return the decimal number
+ */
+uint8_t bcd2dec8(uint8_t bcd);
+
+/** @breif Convert decimal number(uint8_t) to bcd
+ *  @param[in] dec - decimal number
+ *  @return the bcd number
+ */
+uint8_t dec2bcd8(uint8_t dec);
+
+/** @breif Convert bcd number(uint16_t) to decimal
+ *  @param[in] bcd - bcd number
+ *  @return the decimal number
+ */
+uint16_t bcd2dec16(uint16_t bcd);
+
+/** @breif Convert decimal number(uint16_t) to bcd
+ *  @param[in] dec - decimal number
+ *  @return the bcd number
+ */
+uint16_t dec2bcd16(uint16_t dec);
+
+/** @breif Convert bcd number(uint32_t) to decimal
+ *  @param[in] bcd - bcd number
+ *  @return the decimal number
+ */
+uint32_t bcd2dec32(uint32_t bcd);
+
+/** @breif Convert decimal number(uint32_t) to bcd
+ *  @param[in] dec - decimal number
+ *  @return the bcd number
+ */
+uint32_t dec2bcd32(uint32_t dec);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/test/libpldm_utils_test.cpp b/test/libpldm_utils_test.cpp
index 971416f..b391f79 100644
--- a/test/libpldm_utils_test.cpp
+++ b/test/libpldm_utils_test.cpp
@@ -48,4 +48,21 @@
 
     rc = ver2str(&version, buffer, 0);
     EXPECT_EQ(rc, -1);
+}
+
+TEST(BcdConversion, BcdCoversion)
+{
+    EXPECT_EQ(12, bcd2dec8(0x12));
+    EXPECT_EQ(99, bcd2dec8(0x99));
+    EXPECT_EQ(1234, bcd2dec16(0x1234));
+    EXPECT_EQ(9999, bcd2dec16(0x9999));
+    EXPECT_EQ(12345678, bcd2dec32(0x12345678));
+    EXPECT_EQ(99999999, bcd2dec32(0x99999999));
+
+    EXPECT_EQ(0x12, dec2bcd8(12));
+    EXPECT_EQ(0x99, dec2bcd8(99));
+    EXPECT_EQ(0x1234, dec2bcd16(1234));
+    EXPECT_EQ(0x9999, dec2bcd16(9999));
+    EXPECT_EQ(0x12345678, dec2bcd32(12345678));
+    EXPECT_EQ(0x99999999, dec2bcd32(99999999));
 }
\ No newline at end of file
