【发布时间】:2016-11-21 22:44:53
【问题描述】:
我有一些字符数组:char char[8] 其中包含例如两个整数,前 4 个索引是第一个整数,接下来的 4 个索引是第二个整数。
char array[8] = {0,0,0,1,0,0,0,1};
int a = array[0-3]; // =1;
int b = array[4-8]; // =1;
如何将此数组转换为两个 int?
可以有任何其他类型,不一定是int,但这只是一些例子:
我知道我可以将此数组复制到两个大小为 4 的 char 数组,然后将每个数组转换为 int。但是我觉得这样不好,而且违反了干净代码的原则。
【问题讨论】:
-
我无法理解您为什么要这样做,但
memcpy可能会帮助您... -
由于字节序,您不能只将
char*转换为int*。 -
看起来你想要一些魔法发生。不幸的是,这个世界上没有魔法。您必须编写一个函数来进行转换。
-
@c650: 我有 char 数组,里面有一些变量,现在我想把它“解码”成具有良好类型的变量:int、longlong、double。
-
a对array[8] = {1,2,3,4,0,0,0,1};有什么价值?是1234吗?