2017-06-17 5 views
3

「期待Byte型に準拠していない整数リテラル」を宣言バイトは、コンパイル時にエラー

0xFF0000FF An integer literal does not conform to the expected type kotlin.Intで別の質問を見られるようにし、私のバイト

val b:Byte = 0xFF

としての価値は0xFFを宣言受信整数リテラルが予想される型に一致しないByteコンパイルエラー

私は手掛かりについてkotlin.Byteが署名されているバイト

を持っているので、どのように0x00とKotlinで宣言バイトに - ちょうどByte b = 0xFFよう0xFF符号なしバイト?

あなたがテストと解答のためのインスタントコンパイラたい場合:

rextesterを、try.kotlinlang.org

答えて

4

Kotlinは自動的に数値型の間で変換しません。

val b:Byte = 0xFF.toByte()を実行すると、コンパイルされ、値が-1のバイトが返されます。

あなたは符号なしバイト値を保持したい場合は、あなたがCharとしてそれを格納する必要がありますが、あなたは数としてそれを印刷するには、別のタイプに変換する必要があります。

val b = 0xFF.toChar() 
println(b.toInt()) 
+0

値 ' - 1 'は正しいですが... –

+0

はい、質問には、符号なしバイトで宣言しています。「Char」の使用についての部分を追加しました。符号付きバイトの正しい答えは '-1'です。 – Kiskae

+0

'0xFF.toByte()'はこれを行いました。感謝する。 – nyconing

関連する問題