|
: : struct TEST{
: : uint8_t a1: 1;
: : .....
: : uint8_t a100: 1;
: : } test;
: :
: : char *ptr = (char *)&test;
: : *(ptr+i) & (0x01 << j)
위에서 다른 곳에 옮겨 담는 곳이 없는데요....
구조체 님이 쓰신 글 :
: 아하... ㅎㅎ 네~ 그렇게는 되요 ㅎㅎ;;
:
: 제가 아직 초보라 ㅎ.. 구조체에서 바로 test & (0x01 << i)
:
: 되는 방법이 있는줄 알고 안된다고 한거에요 ㅎ;;
:
: 다른 곳에 옮겨 담고 하기엔 이것 저것 메모리를 많이 차지하는 지라
:
: 그냥 바로 되는 방법을 찾고 있어서요 ㅎ
:
: 어째든 답변 감사합니다~~ ^^ 좋은 하루 되세요~~~
:
: 라스코니 님이 쓰신 글 :
: : 안될리가요....
: :
: : struct TEST{
: : uint8_t a1: 1;
: : .....
: : uint8_t a100: 1;
: : } test;
: :
: : char *ptr = (char *)&test;
: : *(ptr+i) & (0x01 << j)
: :
: : 를 이용하면 얼마든지 가능한데요?
: :
: : 구조체 님이 쓰신 글 :
: : : 네~ 저도 평소 비트 연산자로 연산하곤 했었는데요...
: : :
: : : 구조체라 그런지 비트연산자가 안되더라구요;; 그래서 이렇게 질문드립니다 ㅠㅠ
: : :
: : : 라스코니 님이 쓰신 글 :
: : : : 바이트 단위로 bit mask 를 써보시죠?
: : : :
: : : : test & 0x01
: : : : test & 0x02 등등등.
: : : :
: : : : test & (0x01 << i) 식으로 index 와도 연동하게 할 수 있죠.
: : : :
: : : :
: : : : 구조체 님이 쓰신 글 :
: : : : : 통신을 이용해 각각의 비트 값을 저장 하여 확인하고 있는데요...
: : : : :
: : : : : 다름이 아니라 구조체에 값을 빠르게 확인할 방법이 없어서요...
: : : : :
: : : : : struct TEST{
: : : : : uint8_t a: 1;
: : : : : uint8_t b: 1;
: : : : : }test;
: : : : :
: : : : : test 라는 구조체가 있다고 합시다..
: : : : :
: : : : : 이 test 구조체에 a와 b의 값이 0인지 1인지 알고 싶습니다...
: : : : :
: : : : : 그런데 저런게 100개가 있다고 하면 코드상 test.a, test.b.... 이런식으로 하면 너무 길어지잔아요..
: : : : :
: : : : : 그래서 test 구조체의 0비트부터 100비트까지 간단하고 빠르게 값을 확인 할 수 있는 방법이 있을까요??
: : : : :
: : : : : 많은 조언 부탁드립니다 ㅠㅠ;;
|