1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | struct testStr { union { int i; char str[5]; }; }; void make(testStr* s, int(*randFunc)()) { s->i = randFunc(); s->i &= 0b00001111000011110000111100001111; s->i += 0b01000001010000010100000101000001; s->str[4] = ''; std::cout << s->str<<'
'; } int main() { auto seed = time(NULL); srand(seed); testStr test; make(&test, rand); | cs |
오늘 directx에서 XMFLOAT4를 union으로 쩔게 구현한거 보고 감덩받아 따라해봄
너 고수구나?
저거 몇자리임? - dc Cpp
뭐가 몇자리임?
이진수 - dc Cpp
32자리임 비트연산은 걍 맨 끝 1111 4개만 남겨두고 짜른 다음에 65 더하는게 끝
0x0F0F0F0F랑 0x41414141로 바까주시면 안댐? - dc Cpp
ㅇㅇ 근데 테스트해보니까 오류있다...
일단 P부터는 안나오겠네 - dc Cpp
rand_max땜에 그런듯
ㅇㅇ A~A+15까지만 나올거임
1111로 마스킹하는것도 문제임. 16개의 알파벳밖에 표현못하니까 - dc Cpp
ㅇㅇ 의도된건가 - dc Cpp
26까지 한번에 짜를 방법은 생각 안나서 걍 저걸로 했음
확률을 균등하게 배분하는건 생각을 좀 해봐야겠네 - dc Cpp
개빡고수