【发布时间】:2016-01-26 18:49:02
【问题描述】:
我有一个 128 字节的内存位置。我尝试用从 1...127 开始的数据填充内存。
我需要编写一个代码来获取两个参数,如偏移量、数据类型。根据参数,我需要将内存上的数据转换为提到的特定数据类型。
举个例子
unsigned char *pointer = (unsigned char *)malloc(sizeof(unsigned char) * 128);
printf("\n\n loading some default values...");
for (unsigned int i = 0; i < 128; i++) {
pointer[i] = i + 1;
}
convertTo(3,efloat);
convertTo(100,edword);
void convertTo(uint8_t offset, enum datatype){
switch(datatype)
{
case efloat:
//// conversion code here..
break;
case edword:
//// conversion code here..
break;
case eint:
//// conversion code here..
break;
}
}
我尝试使用许多方法,如 atoi、atof、strtod、strtol 等,但没有任何方法能给我正确的价值。假设我将偏移量设为 2,eint(16-bit) 应该取值 2,3 并给出 515
【问题讨论】:
-
提示:您列出的所有方法都用于将 ASCII 转换为二进制。 (顺便说一下,不需要“ASCII”,而是“C 编译器的本机文本编码”。)
标签: c++ type-conversion