Ich bin versucht shl
zu einem Int
Wert in Kotlin anzuwenden:Kotlin `shl` funktioniert nicht
val a = 1092455
println(a.toString())
println(toString(bits(one)))
println(toString(bits(one shl 16)))
println(toString(bits(one shr 16)))
Dies erzeugt die folgende Ausgabe:
1092455
0000000000010000 1010101101100111
0000000000000000 0000000000000000
0000000000000000 0000000000010000
Wie Sie sehen können, shr
richtig Die letzten 16 Bits (0000000000010000
) werden nach rechts verschoben, shl
gibt jedoch nicht die erwartete Ausgabe (1010101101100111 0000000000000000
).
Was fehlt mir?
Edit: bits
Methode:
fun bits(value: Int): BooleanArray {
var x = value.toDouble()
val result = BooleanArray (32)
for (i in 31 downTo 0) {
val d = Math.pow(2.0, i.toDouble())
if (x >= d) {
x -= d
result[i] = true
}
}
return result
}
könnten Sie bitte die 'bits' Implementierung zur Verfügung stellen? – voddan
@voddan ah, nahm die 'Bits' Implementierung Signierung nicht in Betracht. Ffs – AesSedai101
Sehen Sie, wie ich 'toString (2)' verwende, um die Zahlen in meiner Antwort zu drucken – voddan