avva: (Default)
[personal profile] avva
1. Что делает функция g(x)? Зачем она нужна? x - положительное целое число.

f(x) = x & -x
h(x) = x + f(x)
g(x) = (((h(x) xor x)/f(x)) >> 2) + h(x)


2. 64-битное число содержит восемь ASCII-символов, по одному в каждом байте. Дано, что каждый из этих символов либо пробел, либо цифра, либо латинская буква. Произведите над всеми символами операцию toupper() (переводящую строчные буквы в прописные) с помощью всего трех битовых операций над исходным числом. Битовой операцией, определенности ради, назовем одно из двух: a) любую операцию с одним или двумя аргументами, значение которой в каждом бите результата зависит только от соответствующих битов аргументов; b) сдвиг влево или вправо.

(update: первоначально я забыл разрешить b) выше, виноват)

Date: 2008-01-12 01:41 pm (UTC)
From: [identity profile] pilpilon.livejournal.com
дя перебора всех чисел с данным числом единиц?

2.да, у меня странная была идея что это можно сделать без сдвигов, какой-то бред написал.
можно :
С = 01000000010000000100000001000000
F(X): X & C
G(X) : ~(X >>1)
H(X) : X & F(G(X))

January 2026

S M T W T F S
    1 2 3
4 5 6 7 8 910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 9th, 2026 07:06 am
Powered by Dreamwidth Studios