저는 스칼라를 처음 사용합니다. 나는 그것이 -128를 포함 할 수 있습니다 Byte
종류인지 이상한 사실을 발견했습니다하지만스칼라 바이트 유형에는 -128을 포함 할 수 있지만 128은 포함 할 수 없습니다.
scala> val overflow1NegByte = -129:Byte
<console>:11: error: type mismatch;
found : Int(-129)
required: Byte
val overflow1NegByte = -129:Byte
^
scala> val overflow1NegByte = -128:Byte
overflow1NegByte: Byte = -128
scala> val overflow1PosByte = 128:Byte
<console>:11: error: type mismatch;
found : Int(128)
required: Byte
val overflow1PosByte = 128:Byte
^
scala> val overflow1PosByte = 127:Byte
overflow1PosByte: Byte = 127
128은 분명히이 음수를 나타 내기 위해, 느낀다, 첫 번째 플래그가 사용됩니다. 양수의 경우에도이 플래그는 예약되어 있습니다. 이해할 수 있습니다. 그러나, 왜 긍정적 인 것보다 하나 더 부정적인 숫자.
아주 간단한 답 : 모두 -128과 128은 (0 포함) 2 * 128 + 1 = 257 개 번호가 당신에 의해에 집어 넣은 싶어 te, 이는 단지 8 비트, 즉 256 개의 조합을 갖는다. 128 또는 -128 중 하나를 희생해야합니다. 왜 128입니까? 조금 더 긴 이야기입니다. –
REPL로 이동하여 'Byte','Short','Int' 및'Long'의 정수 유형 각각에 대해'MinValue' 및 'MaxValue'를 호출합니다. (즉, Byte.MinValue, Byte.MaxValue, Short.MinValue 등)이 패턴이 일관성이 있음을 알 수 있습니다. – jwvh