- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将shl
应用于Kotlin中的Int
值:
val a = 1092455
println(a.toString())
println(toString(bits(one)))
println(toString(bits(one shl 16)))
println(toString(bits(one shr 16)))
1092455
0000000000010000 1010101101100111
0000000000000000 0000000000000000
0000000000000000 0000000000010000
shr
正确地导致最左边的16位(
0000000000010000
)向右移位,但是
shl
没有给出预期的输出(
1010101101100111 0000000000000000
)。
bits
方法:
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
}
最佳答案
数字值在Kotlin中签名,当您向左移动时,该值溢出为负数。然后,您正在使用的bits
的实现无法正确打印这些位。
这是对我有效的方法:
val a = 1092455
println((a shr 16).toString(2))
println((a shl 15).toString(2))
println((a shl 16).toString(2))
10000
1010101101100111000000000000000
-1010100100110010000000000000000
Long
值:
val a: Long = 1092455
关于kotlin - Kotlin `shl`无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47828163/
在mutagen ,我使用特化来变异可能的二进制操作。基本上,我替换了 a + b和 ::mutagen::AddSub::add(a, b, mutation_count) las,它在场时失败了移
我需要将 EAX 乘以 37,我知道我可以使用 shl eax,5 和 shl register,2 然后将寄存器添加到 eax 来乘以 38,但我不确定乘以奇数的代码,我只能使用 shl add 和
我正在尝试将shl应用于Kotlin中的Int值: val a = 1092455 println(a.toString()) println(toString(bits(one))) println
请考虑以下英特尔8086汇编程序: CX保持非零值。 L: ADD AX, AX ADC DX, 0 LOOP L 我被要求理解上面的代码并重写它以提高效率。 据我了解: 它将2 ^ CX
这是我试图转换为 gcc 样式 asm 内联汇编代码的实际代码。 #include using namespace std; int reverse(int num); int main(){
这个问题的灵感来自于我尝试回答另一个问题:Converting decimal/integer to binary - how and why it works the way it does? 唯一
我们的老师在类里面给我们布置了一项作业。问题是我们在类里面没有讨论位移位,所以我有点不知道如何做到这一点。在作业说明中,他告诉我们以下内容: 我们只能使用 mov、add 、sub 指令来完成赋值。
我在 Assembly x86 类的代码中遇到这个编译错误, A2070: invalid instruction operands 这条线是 shl eax, ecx ecx 应该是循环的(减 1)
我正在基于 Delphi(转换代码)在 C# 中创建一个应用程序,但我发现了一个我不认识的命令 (shl),我想知道是否有与 C# 等效的命令。 提前致谢。 最佳答案 Shl是left shift .
声明... const n = 2 shl 33 会将常量n设置为值4,而不会出现任何编译器投诉! 还有... Caption := IntToStr(2 shl 33); ...返回 4 而不是
Result:= b8; Result:= Result+ (b7 SHL 8); Result:= Result+ (b6 SHL 16); Result:= Result+ (b5
这个问题是关于我们如何将一个整数与一个常数相乘。那么让我们看一个简单的函数: int f(int x) { return 10*x; } 如何才能最好地优化该函数,尤其是在内联到调用方时? 方
在/O2(发行版)模式下查看Visual Studio(2015U2)生成的程序集时,我看到此“手动优化”的C代码片段已转换回乘法: int64_t calc(int64_t a) { retur
我正在学习汇编语言,我已经开始使用宏来缩短我的程序。其中一个宏未按预期工作。 这是我正在尝试运行的基本程序, include pcmac.inc .model small .stack 100h .d
您为什么要使用: MOV EAX, 22 SHL EAX, 2 ...乘以 4 时而不是仅使用 MUL 指令? 据我所知,这也可以使用 SHR 而不是 DIV 来完成。 这样做有什么好处? 另外,你可
我不明白问题出在哪里,因为结果是正确的,但其中有问题,我不明白。 1.这是我必须转换为 C 的 x86 代码: %include "io.inc" SECTION .data mask DD
我要将以下 AT&T x86 程序集转换为 C: movl 8(%ebp), %edx movl $0, %eax movl $0, %ecx jmp .L2 .L1 shll $
我是一名优秀的程序员,十分优秀!