실험
-
C스러운 코드로 유혹하기. (비트연산, 연산우선순위 편)R&E: research & education/Research 2023. 12. 9. 13:00
오늘은 코드로 상대를 유혹하는 방법을 알아보겠습니다.모든 코드는 ANSI문법을 준수합니다.01. 분기없이 Max, min 구하기#define MIN(x, y) ((y) ^ (((x) ^ (y)) & -((x) 02. N을 32로 나눈 나머지N & 0x1F03. log N값 구하기const int tab64[64] = { 63, 0, 58, 1, 59, 47, 53, 2, 60, 39, 48, 27, 54, 33, 42, 3, 61, 51, 37, 40, 49, 18, 28, 20, 55, 30, 34, 11, 43, 14, 22, 4, 62, 57, 46, 52, 38, 26, 32, 41, 50, 36, 17, 19, 29, 10, 13, 21, 56, 45, 25, 31, 35, 16, 9..
-
C언어 math.h에서 파이값 가져오는 방법R&E: research & education/Research 2021. 5. 15. 13:00
이번주에도 간단하게 C언어 파이값을 비롯해, 자연상수, 자연상수 로그값, 자연소그부터 루트 파이와 2 분의 파이 등 다양한 상수값?들을 알아내는 방법을 알아봅시다.이 방법은 개인적으로 알면 별거 아닌데, 모르고있다 알게되면 '아...'하게 되는 내용입니다.참고로 비주얼 스튜디오를 기준으로 설명드리는 겁니다. gcc에서는 높은 확률로 작동이 안될겁니다.+ 2주연속 간단한 내용이라 죄송합니다. 다음주에는 NIST에서 권장하는 난수 판독기로 돌아오겠습니다코드#include #define _USE_MATH_DEFINES#include //이제 여러분은 이 소스에서 math.h에서 지원하는 모든 매크로(define)들을 사용할 수 있습니다.int main(void) { return 0;} 사용가능한 매크로들 (..
-
C언어 array[-1]에 접근할 수 있는 방법R&E: research & education/Research 2021. 5. 8. 13:00
오늘은 거대한, signature 프로젝트 보다는간단하게 신기한 코드를 알아보도록 합시다.이건 제가 알아낸 방법이며, 어디든 퍼가도 좋으니 제발 퍼가신다면 출처에 KMS studio라고 잘보이게 써주세요코드#include int main(void) { int array_s[5] = { 0, 1, 2, 3, 4 }; int* arr = array_s + 4; int i; printf("arr[-3] = %d\n\n", arr[-3]); for (i = -4; i 출력결과원리간단한 원리로 "이게 될까?"했는데 "이게 되네?"가 되서 올립니다.사실 포인터만 배우시면 이정도 프로그램 원리는 알 것이라 생각합니다. printf 부분만 보면 런타임에러가 발생하거나 쓰레기 값이 출력될 것 같은 생긴 코드지만arr[-..