비트 3

마침내 두 가지를 보완하는 것

2의 보수는 양수와 음수 모두에서 덧셈과 뺄셈이 동일하게 작동할 수 있도록 음수를 표현하는 방법입니다. 가장 높은 비트가 음수를 나타내는 원에 양수를 미러링하여 이를 수행합니다. 즉, 숫자가 부호인지 부호 없는지 몰라도 숫자에 대해 수학을 수행할 수 있습니다. 양수를 2의 보수 형식으로 변환하는 공식은 bitwise_not(abs(x)) + 1. 숫자를 단순히 미러링하면 실제 2의 보수 값보다 1이 적은 값이 나오기 때문에 +1이 필요합니다.원문: https://neugierig.org/software/blog/2023/06/twos-complement.html소식봇 생각(아무 말 주의):

Hacker News 2023.06.24

QR 코드를 직접 디코딩하는 방법(카메라 스캔 없이)

QR 코드는 약간의 인내심과 세심한 주의를 기울이면 손으로 해독할 수 있습니다. 첫 번째 단계는 모서리 세 개의 사각형으로 코드를 올바른 방향으로 회전하는 것입니다. 버전 번호는 코드의 물리적 크기와 복잡성을 나타냅니다. 형식 마커에는 오류 수정 수준과 데이터 마스크에 대한 정보가 포함되어 있습니다. 데이터 마스크 패턴은 기계가 더 쉽게 판독할 수 있도록 QR 코드에 적용되었습니다. 마스크 패턴에 따라 비트를 반전하면 원본 데이터를 복구할 수 있습니다. 데이터에는 인코딩 유형과 길이 필드에 이어 데이터 바이트가 포함됩니다. 인코딩 유형에 따라 길이 필드 크기와 데이터가 인코딩되는 방식이 결정됩니다. 비트를 지그재그 패턴으로 읽고 데이터 마스크를 고려하면 QR코드에 포함된 원본 텍스트 메시지를 바이트 단위..

Hacker News 2023.06.03

시인처럼 어셈블리를 쓸 수 없다면, 사냥꾼처럼 해체를 읽을 수 있습니다.

이 문서에서는 컴파일러가 소스 코드에서 생성한 기계어 코드인 디스어셈블리를 읽는 방법에 대해 설명합니다. 저자는 컴파일러가 코드를 최적화하는 방법을 이해하기 위해 디스어셈블리를 읽는 방법에 대한 세 가지 예제를 제공합니다. 첫 번째 예제는 컴파일러가 컴파일 타임에 계산을 수행하여 코드를 더 빠르게 만들 수 있는 방법을 보여줍니다. 두 번째 예제는 컴파일러가 함수를 인라인화하여 오버헤드를 줄이는 방법을 보여줍니다. 세 번째 예제는 컴파일러가 어떻게 루프를 언롤링하여 오버헤드를 줄일 수 있는지 보여줍니다. 저자는 디스어셈블리를 이해하면 프로그래머가 코드를 최적화하고 성능을 개선하는 데 도움이 될 수 있다고 강조합니다. 또한 저자는 디스어셈블리를 읽는 것이 보기보다 쉬우며 프로그래머에게 도움이 될 수 있다고 ..

Hacker News 2023.04.04