는 I는 다음의 구조를 정의 :베이스,C에서 n 비트를 사용하여 밑이 2 인 모든 n 비트 값을 어떻게 나타낼 수 있습니까?
typedef struct
{
int unused :8;
int group :2;
int opcode :4;
int source_mode :2;
int dest_mode :2;
int are :2;
}first_word;
난 각 필드는이 구조에서 수신 된 비트를 이용하여 표현 될 수있는 가능한 모든 값을 보유 할 수 있도록하려는을 2
예를 들어 2 비트를 포함하는 필드의
가능한 값은 다음과 같다 :
00 /*0 in base 2*/
01 /*1 in base 2*/
10 /*2 in base 2*/
11 /* 3 in base 2 */
소수점 10 때문에 담당자 인 기본이 4 비트를 사용하여 분개, 나는이 작업을 수행 할 수 없습니다
int main()
{
first_word fw;
fw.group = 10;
return 0;
}
그렇지 않으면 때문에, 내가 얻을 것이라고 다음과 같은 오류 : 마찬가지로
main.c: In function ‘main’:
main.c:21:17: warning: overflow in implicit constant conversion [-Woverflow]
fw.group = 10;
^~
을, 나는 오피 모두 보유 할 수있게하려면 가능한 값은 4 비트를 사용합니다.
어떻게하면됩니까?
int 그룹 : 4;'...... 나에게 명확하지 않다 ... – LPs
그룹에 2 비트만 들어 있기 때문에 비트 필드 @LP를 사용한다. – Float
필드를 서명하지 않고 시작할 수있다. 어쨌든 당신이 주장하는 것입니다. – StoryTeller