번호로 16 비트 문자를> 2 개의 8 비트

B

brucelee2

Guest
안녕하세요,

내가 가진 HMI에 좌표를 16 비트 터치 스크린을 전송하는 2 개의 8 비트 문자를 나타냅니다.
그래서 예제에서, HMI는 보냅니다 :
0x03 다음) 0x0E (둘 다 별도의 어느) 대표 782는 좌표 030E (.

어떻게 내가 결합 두 변수로 하나의 782 번호를 나타내는?나는 그것에 각 사고의 창조되었다 '변화 int와'몇 가지 방법.

즉.

첫 번째 문자 = 0x03;
2 번째 문자 = 0x0E;
int 숫자;

숫자 = 먼저;
숫자 = 숫자 <<8;
--- 지금 갇혀 메신저 ---이유가 뭘까요?
감사합니다.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="매우 행복" border="0" />
 
C는 목적으로 수술을위한 유사하거나 가지고 비트
코드 :

번호 = (int) 첫 <8 | 초 <;
 
오, 괜찮아.인스턴트 메신저를 사용 MikroC, 그래서 병이 컴파일러에서 함수를 참고 이러한 설명서를 참조하는 경우에는.

덕분에 다시

 
더 나은 데이터 경우에)를 선언하는 모든 서명되지 않은 (int 서명 번째 문자를 서명하고 신고 및 데이터 주조 ...그래서

코드 :서명되지 않은 첫 번째 문자 = 0x03;

서명되지 않은 2 번째 문자 = 0x0E;

서명되지 않은 int 번호;...번호 = (int 서명) 첫 <8 | 초 <;

 
양자 택일로, 당신은 일부 사용하는 수있는 노동 조합에 - 코딩도 필요합니다.

또는 매크로 :
코드 :

# (워드를 정의하는 MSB가, LSB가) (((MSB가) <8) | <(LSB가))
 
인용구 :

아마 당신은 거기에 연산자를 '|'를 방지하기 위해 더 많은 괄호를 사용하여 왼쪽으로 이동하기 전에 실행되고 싶어요.
 
mikroC를 사용하는 것처럼 당신이

서명되지 않은 int의 myInt;

안녕하세요 (myInt) = 0x03;
이오 (myInt) = 0x0E;

그 훨씬이 방법을 쉽게.



 

Welcome to EDABoard.com

Sponsor

Back
Top