Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Arduino中,将整数拆分为两个字符的最有效操作是什么?_Arduino - Fatal编程技术网

在Arduino中,将整数拆分为两个字符的最有效操作是什么?

在Arduino中,将整数拆分为两个字符的最有效操作是什么?,arduino,Arduino,以下两种方法中,哪一种更有效 你真的应该测量一下。我不会回答你的问题(因为你会比我从测量中受益更多),但我会给你第三个选择: struct { union { uint16_t big; uint8_t small[2]; }; } nums; (注意这里大端和小端的区别)你真的应该测量。我不会回答你的问题(因为你会比我从测量中受益更多),但我会给你第三个选择: struct { union { uint16_t big;

以下两种方法中,哪一种更有效


你真的应该测量一下。我不会回答你的问题(因为你会比我从测量中受益更多),但我会给你第三个选择:

struct {
    union {
        uint16_t big;
        uint8_t small[2];
    };
} nums;

(注意这里大端和小端的区别)

你真的应该测量。我不会回答你的问题(因为你会比我从测量中受益更多),但我会给你第三个选择:

struct {
    union {
        uint16_t big;
        uint8_t small[2];
    };
} nums;

(注意这里大端和小端的区别)

一个选项是测量它(正如已经说过的)

或者,编译这两个文件,看看汇编语言输出是什么样子


但实际上,你的第二个代码不起作用——如果你取
值>8
,你仍然会得到零。

一个选项是测量它(正如已经说过的)

或者,编译这两个文件,看看汇编语言输出是什么样子


但实际上,你的第二个代码不起作用-如果你取
值>8
,你仍然会得到零。

我如何测量?我在编程方面有点弱。你可以尝试各种不同的方法,然后衡量每种方法所花的时间。在Arduino上,在“loop()”函数中,有一个for()循环,它多次调用测试代码。在for()循环之前,保存micros()的返回值,然后从micros()的值中减去它。在串行端口上输出差异,并使用串行监视器查看时间(我假设您使用的是IDE)。顺便说一句——只要你知道ATmega芯片是哪种endian,你就可以自己学习,工会应该工作得最好。我该如何衡量?我在编程方面有点弱。你可以尝试各种不同的方法,然后衡量每种方法所花的时间。在Arduino上,在“loop()”函数中,有一个for()循环,它多次调用测试代码。在for()循环之前,保存micros()的返回值,然后从micros()的值中减去它。在串行端口上输出差异,并使用串行监视器查看时间(我假设您使用的是IDE)。顺便说一句——只要你知道ATmega芯片是哪种endian,你就可以自己学习,工会应该工作得最好。
struct {
    union {
        uint16_t big;
        uint8_t small[2];
    };
} nums;