Я пишу для Arduino, и я использую протокол I²C. Когда Wire.read()
возвращает int, что это за int? Подписан или не подписан?Wire.read return signed или unsigned value
На официальном сайте Arduino говорится, что он возвращает байт. Поэтому я думаю, что это неподписанное, потому что они не говорят sbyte или подписанный байт. Если регистр, который я прочитал с Wire.read()
, имеет значения (подписанные), которые сохраняются с помощью метода two's complement, как это может быть Wire.read()
?
Всегда ли подписанное значение возврата? Или это зависит?
Кроме того, считывая и печатая значение, я получаю отрицательные числа, так что это означает, что wire.read()
возвращает подписанный int.
'byte' неподписан по определению: его значение равно 0-255. – angelatlarge
Благодарю вас, я закрепил это, но значение регистра, которое я прочитал, дает мне отрицательное число с Serial.print (_the_value_) – kyrpav
'read()' возвращает значение со знаком, если оно успешно возвращает количество байтов, если оно не по какой-либо причине возвращается - 1 –