FileStream.ReadByte: байты никогда не являются отрицательными числами? - PullRequest
6 голосов
/ 15 июня 2011

С msdn :

FileSystem.ReadByte
Байт, приведенный к Int32, или -1, если достигнут конец потока.

Так что -1 в основном "магическая ценность".Означает ли это, что байты, возвращаемые из потоков, никогда не бывают отрицательными?Если нет, то почему?

Ответы [ 4 ]

10 голосов
/ 15 июня 2011

В C # значения byte - это числа от 0 до 255, поэтому байт никогда не бывает отрицательным.

Тип данных sbyte является байтом со знаком, поэтому он имеет значение от -128 до 127.

(В некоторых других языках, например Java, тип данных byte подписан.)

4 голосов
/ 15 июня 2011

byte не может быть отрицательным, верно?Это 0 ... 255.

4 голосов
/ 15 июня 2011

Поскольку байты не являются отрицательными, они представляют собой числа в значении 0-255.

2 голосов
/ 15 июня 2011

FileStream.ReadByte () возвращает приведение байта к значению Int32, оно возвращает -1, только если достигнут конец потока.

...