3
에 값을 저장하는 스위프트와 비트 필드를 사용합니다 : 어떻게 이런 식으로 뭔가를 할 수 C</strong><strong>에서 1 개 이상의 비트
struct byte_nibbles {
unsigned char b1: 4;
unsigned char b2: 4;
unsigned char b3: 4;
unsigned char b4: 4;
unsigned char b5: 4;
unsigned char b6: 4;
unsigned char b7: 4;
unsigned char b8: 4;
};
union {
unsigned long var;
struct byte_nibbles b;
}
u;
int main(void)
{
u.b.b1=0x01; u.b.b2=0x02; u.b.b3=0x03; u.b.b4=0x04;
u.b.b5=0x05; u.b.b6=0x06; u.b.b7=0x07; u.b.b8=0x08;
return 0;
}
그래서 나는 byte_nibbles의 특정 부분에 액세스 할 수 있습니다. 분명히 이것은 단지 하나의 예일뿐입니다. 기본 유형에 맞는 크기의 비트 필드를 만들 수 있습니다.
내 노력과 많은 연구에도 불구하고 이것을 수행하는 방법을 알 수 없었지만 스위프트. 동일한 결과를 얻으려면 비트 단위로 사용할 수 있지만 읽기 쉽고 우아하지는 않습니다.
아이디어가 있으십니까?
저는 Chip-8 VM을 작성하고 있습니다. 그렇다면 비트 연산을 사용하여 정수의 다른 부분에 액세스해야합니다. 당신의 도움을 주셔서 감사합니다. –
Martin, Swift 2.1이 이제 비트 필드를 지원합니다 – dcunited001
@ dcunited001 : 올바르게 기억하면 비트 필드가 C에서 가져온 구조체에서 지원되지만 Swift에서 직접 정의 할 수는 없습니다. –