2012-08-10 2 views
0

저는 바코드 스캐너를 사용하고 ISBN13에서 ISBN10으로 인앱 변환을하고 있습니다. 이제 ISBN 10의 체크 숫자를 계산할 수 있지만 10 자리 숫자로 다시 결합하는 방법을 모르겠습니다.ISBN 10으로 확인 숫자 입력하기

바코드 9780340961391의 접두사 "978"을 빼내어 0340961391로 남기고 9 자리 숫자 만 빼고 isbn 13의 체크 수를 뺀다. 034096139와 함께.

다음은 2 인 isbn10의 체크 자릿수를 계산합니다. 이제 문제가 어떻게 034096139에 추가되어 0340961392의 최종 ISBN10을 형성합니까? 고마워요 :)

+0

번호 * + 숫자 또는 – Johnnywho

+0

의 NSNumber, theNSNumber = 10 [numberWithInt의 NSNumber [theNSNumber있는 intValue * 10 + 숫자]; – Kalle

답변

0

나는 당신의 ISBN13이 문자열이고 체크 디지트를 SBN 번호에 다시 추가 할 때 9 자리 숫자에 영향을 미치기를 원하지 않는다고 가정합니다. I는 제안 :

/* SBNString = 034096139 */ 
NSString *ISBN10 = [NSString stringWithFormat:@"%@%u", SBNString, checkDigit]; 
+0

트릭을해야합니다. (: – NSPunk

+0

@Rick D :하지만 "% @ % u"의 의미는 무엇인지 물어봐도 될까요? d는 정수형을 이해하지만 u가 무엇을 의미하는지 찾을 수는 없습니다. –

+0

@XUESNOW % u 및 % s는 다른 데이터 유형을 표시하는 데 사용되는 토큰입니다 (% s = 문자열, % d = 정수, % 0 = 8 진수, % x = 16 진수, % ld = longint, % lld longlongint 및 so 더 나은 이해를 위해 : % u는 int, unsigned base 10과 같습니다. – NSPunk