char를 uint8_t 형식에 저장된 16 진수로 변환하는 방법은 무엇입니까?
문제
이러한 변수가 있다고 가정합니다. 라코 디스
ndef_input
( "hello"와 같은 일반 텍스트)를 16 진수로 변환하고 ndef_msg
로 저장하려면 어떻게해야하나요?
보시다시피 ndef_default_msg
는 16 진수 형식입니다.ndef_msg
내부의 데이터도 이와 비슷해야합니다.
원래 프로그램 ( 소스 코드 )에서 약간의 배경 지식이 있으면 프로그램이 파일을 열고데이터를 생성하고 ndef_msg
안에 넣으면 카드에 기록됩니다.하지만 데이터를 가져 와서 16 진수로 변환하는 방법을 이해하지 못합니다.
파일을 요청하는 대신 사용자에게 직접 텍스트를 요청하도록 프로그램을 단순화하고 싶습니다.
해결책
ndef_msg로 직접 읽어 보지 않겠습니까 (순수 배열이라고 가정하면 \ 0 빼기).16 진수는 표현 용이며 내용에 영향을주지 않고 10 진수 또는 8 진수를 선택할 수 있습니다. 라코 디스
공백을 허용하기 위해 문자열 읽기를 다르게 처리해야 할 수 있으며 아마 \0
를 무시해야합니다. 이것은 제 요점을 설명하기위한 것입니다.
다른 팁
매우 우아하지는 않지만 단순 할 수 있습니다. 문자 코드 (0 ~ 255)를 원하는 값으로 매핑하는 조회 테이블을 정의합니다. 라코 디스
저는 이러한 우아하지 않은 솔루션을 몇 번 (예 : 색상 매핑 용) 사용했으며 다른 멋진 솔루션과 똑같이 잘 작동했습니다.
내가 올바르게 이해한다면 ndef_input
에 저장된 16 진수 형식의 데이터를 읽고 파싱 한 다음 값을 ndef_msg
에 저장합니다.
사용할 수 있음 라코 디스
도움이 되었기를 바랍니다. 라코 디스
ascii2hex는 다음과 같이 정의됩니다. 라코 디스