2014-06-21 28 views
5

w Objective-C kod jestJak przesuwać bity przy użyciu Swift?

uint16_t majorBytes; 
[data getBytes:&majorBytes range:majorRange]; 
uint16_t majorBytesBig = (majorBytes >> 8) | (majorBytes << 8); 

w Swift

var majorBytes: CConstPointer<UInt16> = nil 

    data.getBytes(&majorBytes, range: majorRange) 

jak aobut majorBytesBig?

Odpowiedz

8

Składnia zmian bitów nie zmieniła się z ObjC na Swift. Po prostu sprawdź rozdział Advanced Operators w książce Swift, aby lepiej zrozumieć, co się tutaj dzieje.

// as binary: 0000 0001 1010 0101 (421) 
let majorBytes: UInt16 = 421 

// as binary: 1010 0101 0000 0000 (42240) 
let majorBytesShiftedLeft: UInt16 = (majorBytes << 8) 

// as binary: 0000 0000 0000 0001 (1) 
let majorBytesShiftedRight: UInt16 = (majorBytes >> 8) 

// as binary: 1010 0101 0000 0001 (42241) 
let majorBytesBig = majorBytesShiftedRight | majorBytesShiftedLeft 
Powiązane problemy