2012-01-20 4 views
1

저는 파이썬 스크립트의 일부를 PHP로 변환하려고합니다. 나는 그것의 대부분을 안다. 그러나 나는 PHP로 많은 경험이없는 비트 시프트 (나는 생각한다?)와 관련이있다. 누군가가이 python 함수를 PHP로 변환 할 수 있습니까?파이썬에서 PHP로 변환

def setBit(value, position, on): 
    if on: 
     mask = 1 << position 
     return (value | mask) 
    else: 
     mask = ~(1 << position) 
     return (value & mask)  

답변

7
function setBit($value, $position, $on = true) { 
    if($on) { 
     return $value | (1 << $position); 
    } 
    return $value & ~(1 << $position); 
} 
+0

와우, 그건 그냥 당황, 그것은 파이썬 함수의 탄소 사본처럼! 난 그냥 전에 << 연산자를 사용하지 않은 것, 어쨌든, 감사합니다! – Landon

4
function SetBit ($value, $position, $on) { 

    if ($on) return ($value|(1<<$position)); 

    return ($value&(~(1<<$position))); 

} 
+2

이 방법을 사용하면 한 줄로 줄일 수 있습니다 :'return ($ on)? $ value | (1 << $ position) : $ value & ~ (1 << $ position);' – DaveRandom

+0

작은 삼항 연산자를 좋아해서 코드를 좀더 간결하게 만듭니다. 내 목표는 실제로 한 줄이 아니었고, 내 목표는 매개 변수를 제거하는 것이 었습니다. 나는 한 번 이상 사용하지 않을 변수에 아무 것도 지정하는 것을 싫어한다 ... 나의 전화 끊기 ... –