2012-10-26 6 views
1

주어진 위치에 1 비트를 넣는데 문제가 있습니다. 예를 들어 는 INT 전자 나는 1짧은 정수에 비트를 추가하는 방법

지금까지 이런 짓을 한에 neset_t의 * 네브라스카의 첫 번째 비트를 넣어했지만 작동하지 않는, 한 경우.

typedef unsigned short int neset_t; 

    void add(neset_t* ne,int e){ 

    int num = (int) *ne; 
    num = num | e; 
    *ne = (neset_t) num; 
} 

미리 감사드립니다. 영어로 죄송합니다.

답변

0

e는 비트 위치입니까? 이 경우 사용해야합니다.

num = num | (1 < < e); 대신

NUM = NUM ​​

| 이자형; e는 비트 위치 인 경우

0

당신은 무엇을해야 num |= (1 << e)