2017-09-08 15 views
1

Swift에서 String 객체를 만들 때 String Format Specifier을 사용하여 정수를 16 진수 표기법으로 변환 할 수 있습니다.큰 십진수를 16 진수 표기로 변환

print(String(format:"%x", 1234)) 
// output: 4d2 
// expected output: 4d2 

그러나 숫자가 커지면 예상대로 출력되지 않습니다.

print(String(format:"%x", 123456789)) 
// output: 73ce2ff2 
// expected output: b3a73ce2ff2 

String(format:"%x", n)의 출력이 8 자에서 잘립니다 것 같다. 기본적으로 16 진수로는 디버깅이 어렵다고 생각하지 않습니다. 다른 프로그래밍 언어에 대한 해답을 보았습니다. 큰 정수를 부분으로 브레이크 업해야한다고 설명되어 있지만 나에게 잘못된 것처럼 보입니다.

  • 여기서 내가 뭘 잘못하고 있니?
  • Swift에서 십진수를 16 진수로 변환하는 올바른 방법은 무엇입니까?-

답변

2

당신은 당신이 링크 된 사이트에 %lx 또는 %llx

print(String(format:"%lx", 123456789)) 

b3a73ce2ff2

표 2를 사용하기 위해 필요한 것은 그들에게

l를 지정합니다 0 길이 수정자는 다음 d, o, u, x 또는 X 변환 지정자가 long 또는 unsigned long 인수에 적용되도록 지정합니다.

x

은 4.294.967.296

에 올라가 부호없는 32 비트 정수입니다