안녕하세요, 이것이 올바른 수식 옵션을 찾지 못하는 단순한 문제라고 생각하지만 JMP 수식에서 기본 비트 연산을 어떻게 수행합니까?
예를 들어 다음은 JMP에서 복제하려는 Python 예제입니다. 람다 x : ((((x >> 1) & 0x1)) << 2)
고마워, 로스
JMP에는 기본 비트 연산자가 없습니다. 귀하의 예에서는 이것을 시도합니다.
// untested code for (((x>>1)&0x1))<<2
f = function( { x },
( mod( floor( x / 2 ), 2 ) == 1 ) * 4
}x >> 1 (오른쪽 시프트 1)은 x를 2로 나누고 & 1은 최소 비트 (0/1, 짝수 / 홀수) 만 유지하고 << 2 (왼쪽 시프트 2)는 4를 곱합니다. (파이썬이 C처럼 작동한다고 가정하고 잊지 않았습니다 ...)
특이한 비트 위치 등이 많은 경우 비트 조작 라이브러리를 찾는 것이 좋습니다. 내가 아는 유일한 사람은 트위터에 대해 알아야 할 7 가지 매우 친숙하지 않을 수 있습니다 (zip 파일의 BITS.jsl 파일). 정확히 무엇을하는지 기억이 나지 않지만 숫자를 32 개의 1과 0의 문자열로 변환 한 다음 AND / OR / etc 논리 규칙을 사용하여 문자열을 결합하여 문제를 해결하는 것처럼 보입니다. 필요하지 않은 작업이 누락되었을 수 있습니다. 그리고 저는 HTTPRequest 함수가 이제 그 코드를 훨씬 쉽게 만들 것이라고 확신합니다.
음수는 오른쪽 교대를 할 때 정말 이상 할 수 있습니다. 부호 비트는 문제가 될 수 있습니다.