본문 바로가기
Programming/C

XOR Calculator

by Kim Gaon

 홈네트워크 관련 표준에 따르면 구성 기기간의 RS-485 통신에서 뒤에서 두 번째 HEX 값은 이전 값들을 순차적으로 XOR연산한 값을 나타낸다.

 

 

::: TTA표준화 위원회 :::

홈 > 자료마당 > 자료검색 > 표준 표준종류 정보통신단체표준(TTAS) 표준번호 [폐지] TTAK.KO-04.0083 구 표준번호 제개정일 2008-12-19 총 페이지 16 한글 표준명 댁내 제어기기 연동을 위한 홈네트워크 월

committee.tta.or.kr

 

 라즈베리파이를 이용해 이를 자동화하려는 과정에서 테스트 목적으로 HEX 값을 순차적으로 XOR연산하는 프로그램을 작성하게 되어 공유한다.

 

 각 항을 HEX로 띄어쓰기를 통해 구분하여 입력하면 연산을 수행한다.

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
    char *hex_string = NULL;
    char *token;
    size_t buffer_size = 0;
    unsigned char xor_result = 0;

    printf("Enter space-separated hex values : ");
    getline(&hex_string, &buffer_size, stdin);

    token = strtok(hex_string, " ");
    while (token != NULL) {
        unsigned char hex_value = (unsigned char)strtol(token, NULL, 16);
        xor_result ^= hex_value;
        token = strtok(NULL, " ");
    }

    printf("Result : %02X\n", xor_result);
    free(hex_string);

    return 0;
}

/*
입력 예시 : F7 0B 01 18 02 45 12 1F 00
Result : AF
*/

 

댓글