Name: Added Component toNumber and toNumberWithMarker.
diff --git a/ndn-cpp/c/name.c b/ndn-cpp/c/name.c
index a81fbb3..d6864e9 100644
--- a/ndn-cpp/c/name.c
+++ b/ndn-cpp/c/name.c
@@ -7,6 +7,34 @@
 #include "util/ndn_memory.h"
 #include "name.h"
 
+uint64_t ndn_NameComponent_toNumber(struct ndn_NameComponent *self)
+{
+  uint64_t result = 0;
+  size_t i;
+  for (i = 0; i < self->value.length; ++i) {
+    result *= 256;
+    result += (uint64_t)self->value.value[i];
+  }
+  
+  return result;
+}
+
+ndn_Error ndn_NameComponent_toNumberWithMarker(struct ndn_NameComponent *self, uint8_t marker, uint64_t *result)
+{
+  if (self->value.length == 0 || self->value.value[0] != marker)
+    return NDN_ERROR_Name_component_does_not_begin_with_the_expected_marker;
+  
+  uint64_t localResult = 0;
+  size_t i;
+  for (i = 1; i < self->value.length; ++i) {
+    localResult *= 256;
+    localResult += (uint64_t)self->value.value[i];
+  }
+  
+  *result = localResult;
+  return NDN_ERROR_success;
+}
+
 int ndn_Name_match(struct ndn_Name *self, struct ndn_Name *name)
 {
 	// This name is longer than the name we are checking it against.