2013-10-17 1 views
2

구성 헤더의 특정 비트를 1로 설정하고 싶다면 (1의 비트 3),이 새로운 구성 헤더를 다음과 같이 저장하고 싶습니다. 내 옛날. 비트 확인을 설정할 수 있지만 구성 바이트를 업데이트하기 위해 이전 바이트를 새 바이트로 바꾸는 데 문제가 있습니다. 내 새 구성 헤더를 ConfigHeader = [128; 0; 0; 0; 0; 0; 0; 0; 0; 30]; 나는 아마 아주 간단한 해결책임을 안다 !!특정 비트를 1 개의 MATLAB으로 설정하십시오.

ConfigHeader = [128;0;0;0;0;0;0;0;0;0;26]; 
ByteTen = ConfigHeader(11); 
if bitget(ByteTen,3) == 0 
% Set bit 3 of byte 10 to 1 
bitset(ByteTen,3); 

% Replace old config header with new one (bit changed to 1) 
ConfigHeader = ?????? 
end 

답변

1

수정 된 값을 다시 ConfigHeader에 지정해야합니다. 이 줄을 추가하여 :

ConfigHeader(11) = bitset(ByteTen,3); 

이 줄 : 그 자체에

bitset(ByteTen,3); 

이만큼의 출력을 사용하지 않기 때문에 아무것도하지 않습니다.

1

나는 비트 연산에 사용하고 있지 않다, 그러나 당신의 코드에서 juding하는 것은 다음 논리적 인 단계는 다음과 같습니다

ConfigHeader(11) = ByteTen 
아마도

전체 코드도 줄일 수있다 :

bitset(ConfigHeader(11),3) 

결국 조금은 0이나 1이 될 수 있으므로 항상 끝내고 싶다면 테스트 할 필요가 없습니다.