본문 바로가기
반응형

정리12

[Swift] 비트 연산과 비트마스킹 (NOT, AND, OR, XOR, 시프트 등) 오늘도 PS를 위한 문법, 비트 연산자이다. 비트 연산은 거의 비트마스킹에 쓰기 때문에 비트마스킹에 활용하는 방법까지 엮어서! Bitwise Operators NOT ( ~ ) 모든 비트를 반대로 뒤집어버린다. 0은 1로 만들고, 반대로 1은 0으로 만든다. 연산자는 ~이다. let A: UInt8 = 0b00110011 // 0011 0011 let notA = ~A // 1100 1100 AND ( & ) 둘 다 1인 경우에만 1이고, 나머지 경우는 모두 0으로 만든다. 연산자는 &이다. let A: UInt8 = 0b00110011 // 0011 0011 let B: UInt8 = 0b01010101 // 0101 0101 let AandB = A & B // 0001 0001 OR ( | ) 둘 .. 2022. 1. 17.
[Swift] 진수 변환하기 (2진수, 8진수, 10진수, 16진수 등) PS를 위한 문법~ 이번엔 진수 변환이다. 브론즈~실버에서 가끔 진수 변환이 필요한 문제가 있다. 물론 직접 구현해도 되지만..! 이미 라이브러리에 편하게 메소드가 있다ㅎㅎ Int의 이니셜라이저 중에 문자열과 기수(radix)를 받아 문자열로 표현된 radix진수 → Int로 만들어주는 init(_:radix:)가 있다. 주의할 점은 변환에 실패할 수도 있기 때문에 Failable Initializer이라는 점이다. 옵셔널 타입으로 만들어주므로 옵셔널 바인딩을 하거나 강제 언래핑을 해서 사용해야 함. init?(_ text: S, radix: Int = 10) where S : StringProtocol 또 String의 이니셜라이저 중에 정수와 기수(radix)를 받아 정수 → radix진수 문자열로 .. 2022. 1. 17.
[Swift] 거듭제곱하기 거의 PS용 문법들만 포스팅하게 되는 것 같은데..ㅎㅎ 오늘은 거듭제곱이다. 반복문으로 구현해도 되지만 메소드로 만들어져 있다! 사용법 요약부터 하면 let resultOfPow = pow(3.0, 2.0)// 9.0 // Int로 형변환 하려면 Float형으로 호출해야 함 var sum = 0 sum += Int(resultOfPow)// Int형과 더하려면 형변환 필요 스위프트의 거듭제곱 메소드는 pow이다. 종류가 이렇게 많은데, 호출 시에 파라미터를 다 _로 생략하게 되어있으니까 자료형에 맞춰서 알아서 맞는 것으로 호출되겠지..? 하는 생각을 하며 일단 시작 pow(x,y)에서 x가 밑이고 y가 지수이다. 알고리즘 문제에서는 거의 밑과 지수 모두 정수일 때이니까 정수^정수를 해보자. 이렇게 잘 구.. 2022. 1. 15.
[iOS] 백그라운드 스레드에서 타이머 돌리기 ** 아직 공부하는 중이라 틀린 내용이 있을 수도 있습니다. ** 저번 글에서는 런루프와 타이머의 관계, 타이머 생성하는 법까지 다뤘다. [Swift] Timer(타이머)와 Thread(스레드), RunLoop(런루프) ** 아직 공부하는 중이라 틀린 내용이 있을 수도 있습니다. ** 최근 프로젝트에서 반복 타이머가 필요한 경우가 있었는데, 그때 알아보았던 타이머, 스레드, 런루프에 대해 까먹기 전에 정리하 please-amend.tistory.com 요약을 하자면..! 런루프는 스레드마다 존재하면서 마우스나 키보드 같은 입력 이벤트와 타이머 이벤트를 처리해준다. 타이머는 객체를 만들어서 런루프에 추가해주어야 한다. 그럼 타이머는 어느 스레드의 런루프에서 돌리는 것이 적절할까? 메인 스레드에서는 UI와 .. 2022. 1. 15.
[Swift] 소수점 제거하기 (반올림, 올림, 내림, 버림 등) PS를 하다 보면 반올림, 올림, 내림, 버림 등 소수점을 제거해서 출력해야 할 때가 종종 있다. 찾아보다가 이 모든 것을 전부 할 수 있는 만능 메소드를 찾았다! FloatingPoint 프로토콜에 정의된 round(_:)라는 메소드이다. 기본 자료형인 Float과 Double 모두 FloatingPoint 프로토콜을 채택하고 있기 때문에 round 메소드 사용이 가능하다. mutating func round(_ rule: FloatingPointRoundingRule) 형태는 mutating func round(_ rule: FloatingPointRoundingRule). 제거한 결과값을 리턴하는 게 아니라 mutating func이기 때문에 인스턴스 값 자체가 바뀐다. 따라서 immutable 한.. 2022. 1. 13.
반응형