使用 signed int 时,我的值是否总是从零开始?
When using signed int, does my value always start from zero?
我一直在深入研究和阅读无穷无尽的互联网论坛和网页,试图找到这个问题的答案,但没有运气,所以我们来了。作为参考,我正在使用 A/Dconverter 并且我正在使用插入地面和 5V 的可变电阻器更改 A/Dconverter 的值。因此,当我编写 C 代码时,如果我使用的是有符号整数——该整数是模拟到数字转换的值——该值将自动拆分为零的两边。例如,假设我有一个 8 位整数并且我正在使用 signed int。因为我使用的是 signed int,所以当我移动电阻器上的滑动器时,我自动获得的值是 0 到 +255 之间的任何值还是我应该自动接收到一个介于 -128 到 +127 之间的值?
欢迎使用计算器!这似乎是一个您可以轻松测试的小细节。但是,我刚才检查的大多数教程都使用 'int' 而不是 'unsigned int'。 One of the tutorials 表示如下:
“返回并存储在 x 中的值将从 0 到 1023。Arduino 有一个 10 位 ADC (2^10 = 1024)。我们将这个值存储到一个 int 中,因为 x 是大于(10 位)一个字节可以容纳的内容(8 位)。"
这让我相信这些值将介于 0-X 之间,具体取决于可用的位数。但正如我所说,这将很容易测试。
首先让我声明一下,
一个 8 位整数包含 8 位。
2 8 是 256,所以一个 8 位整数可以容纳 256 个可能的值。在 -128 到 127(含)之间有 256 个可能的值。
因此,您应该期望值介于 -128 到 127 之间,而不是 0 到 255
我一直在深入研究和阅读无穷无尽的互联网论坛和网页,试图找到这个问题的答案,但没有运气,所以我们来了。作为参考,我正在使用 A/Dconverter 并且我正在使用插入地面和 5V 的可变电阻器更改 A/Dconverter 的值。因此,当我编写 C 代码时,如果我使用的是有符号整数——该整数是模拟到数字转换的值——该值将自动拆分为零的两边。例如,假设我有一个 8 位整数并且我正在使用 signed int。因为我使用的是 signed int,所以当我移动电阻器上的滑动器时,我自动获得的值是 0 到 +255 之间的任何值还是我应该自动接收到一个介于 -128 到 +127 之间的值?
欢迎使用计算器!这似乎是一个您可以轻松测试的小细节。但是,我刚才检查的大多数教程都使用 'int' 而不是 'unsigned int'。 One of the tutorials 表示如下:
“返回并存储在 x 中的值将从 0 到 1023。Arduino 有一个 10 位 ADC (2^10 = 1024)。我们将这个值存储到一个 int 中,因为 x 是大于(10 位)一个字节可以容纳的内容(8 位)。"
这让我相信这些值将介于 0-X 之间,具体取决于可用的位数。但正如我所说,这将很容易测试。
首先让我声明一下, 一个 8 位整数包含 8 位。 2 8 是 256,所以一个 8 位整数可以容纳 256 个可能的值。在 -128 到 127(含)之间有 256 个可能的值。
因此,您应该期望值介于 -128 到 127 之间,而不是 0 到 255