小编pao*_*lo_的帖子

将字节数组转换为double - c

我试图从16个元素的字节数组中获取数值(double)值,如下所示:

unsigned char input[16];
double output;
...
double a  = input[0];
distance = a;
for (i=1;i<16;i++){
    a = input[i] << 8*i;
    output += a;
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.似乎包含左移结果的临时变量只能存储32位,因为在8位的4位移位操作之后它会溢出.

我知道我可以使用类似的东西

a = input[i] * pow(2,8*i);
Run Code Online (Sandbox Code Playgroud)

但是,出于好奇,我想知道使用移位运算符是否有任何解决这个问题的方法......

c bytearray

8
推荐指数
1
解决办法
1万
查看次数

char数组赋值和管理

我应该用c ++编写一个应该处理kad网络连接的库.我正在尝试构建一个与aMule&co使用的数据包一致的数据包.

而我真的无法理解这段代码之间的区别:

buffer = "\xe4\x20\x02";
Run Code Online (Sandbox Code Playgroud)

例如,这段代码:

char p_buffer[36];
p_buffer[0] = 0xe4;
p_buffer[1] = 0x20;
p_buffer[2] = 0x02;

buffer = p_buffer;
Run Code Online (Sandbox Code Playgroud)

(buffer是类的私有属性,而p_buffer是局部变量)

使用wireshark捕获数据包给了我不同的结果(第一个是我想要的,第二个没有),就像我做的小端/大端符号做错了,我猜...

为什么在类的构造函数中我不能像这样修改[private]"char*buffer":

buffer[0] = 0xe4;
Run Code Online (Sandbox Code Playgroud)

?(它不起作用,退出时没有任何追溯错误)

(如果它很重要,我正在使用crypto ++和boost库)

在此先感谢任何帮助_

c++ byte char

0
推荐指数
1
解决办法
927
查看次数

标签 统计

byte ×1

bytearray ×1

c ×1

c++ ×1

char ×1