본문 바로가기
프로그래밍/Xcode-iOS

ios convert hex string to decimal

by Mr-후 2017. 10. 31.
반응형

ios convert hex string to decimal


이 포스팅은 제목과 같다. 

회사 일을 하면서 iOS의 Core Bluetooth Framework를 이용한 BLE 서비스 데이터를 수신, 처리하는 앱을 만들고 있는데 BLE기기로부터 수신한 서비스데이터는 Hex(16진수) 값, 이 값을 일반 10진수(숫자)로 변경을 하는 로직이 필요해서 찾아보니 괜찮은 자료가 있어 정리를 해 두는 것이다. 

수학에 워낙 자신이 없는 관계로 수학적 용어들이 나오면 긴장부터 하는 버릇이 있다. 차근 차근 문제를 인지하고 하나씩 풀어나가는 지혜가 필요하다. 

제시된 예시의 Hexadecimal 값은 다음과 같다. 

0x3ADE68B1

0x는 옵셔널이고 3ADE68B1은 십진수로 변환하면 987654321 이 된다. 




unsigned int result = 0;

NSScanner *scanner = [NSScanner scannerWithString:@"0x3ADE68B1"];

//[scanner setScanLocation:2]; // bypass '0x' or '#' character

[scanner scanHexInt:&result];

NSLog(@"result = %ld", (long)result);




iOS의 NSScanner를 이용해서 간단하게 int형식으로 값을 변경할 수 있다. 

setScanLocation의 인자로 해당 string의 문자열 스캔 위치를 지정할 수 있으므로 참고하면 되겠다. 

주석으로 막고 했더니 상관없이 잘 스캔되었고, #문자열을 사용하는 16진수 RGB컬러 값 같은 경우도 변환하는데 사용하면 유용할 것 같다. 

이상 끝.




반응형