gpt4 book ai didi

bitwise-operators - 如何进行位掩码操作Pharo?

转载 作者:行者123 更新时间:2023-12-01 08:45:03 28 4
gpt4 key购买 nike

在 Pharo 中,我想对整数进行位掩码,在 Python 中如下所示:

((b1 & 0x3F) << 4) | (b2 >> 4)

我知道 &| 在 Pharo 中工作,但我很确定它们不是按位的。

最佳答案

但你错了:)

看看&的实现, | , << , >>在法罗:

& aNumber
^ self bitAnd: aNumber

| anInteger
^self bitOr: anInteger

<< shiftAmount
"left shift"

shiftAmount < 0 ifTrue: [self error: 'negative arg'].
^ self bitShift: shiftAmount

>> shiftAmount
"right shift"

shiftAmount < 0 ifTrue: [self error: 'negative arg'].
^ self bitShift: 0 - shiftAmount

这基本上意味着您的代码将开箱即用,除了将十六进制 C 样式转换为十六进制 Pharo 样式:

((b1 & 16r3F) << 4) | (b2 >> 4)

关于bitwise-operators - 如何进行位掩码操作Pharo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56301961/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com