|
Регистрация | Файлы | Правила | Альбомы | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
Прочая документация Помощь, книги, инструкции, описания |
|
Опции темы | Поиск в этой теме | Опции просмотра |
09.05.2010, 00:18 | #1 |
just a lazy user
Регистрация: 07.03.2010
Адрес: Киев
Сообщений: 31
Сказал(а) спасибо: 48
Поблагодарили 31 раз(а) в 11 сообщениях
|
В общем, вижу, много вопросов задается на одни и те же темы, решил создать. Просьба писать только по существу - дополнять эти мануалы, никакого обсуждения/флуда.
Начну с того, что уже написал в другой теме. И так, некоторые поля в файле конфигурации (mangosd.conf, realmd.conf) являются битовыми масками (bitmask) -UsedProcessors и т.д. Так как многие новички не понимают, что это такое, объясню. Чтобы понять что это такое, нужно научиться переводить числа между разными системами исчисления. Для начала научимся переводить из любой системы в нашу привычную - десятичную. Именно в десятичной системе записываются все параметры в mangosd.conf. Битовая операция в программировании — некоторые операции над цепочками битов. В программировании, как правило, рассматриваются лишь некоторые виды этих операций: логические побитовые операции и битовые сдвиги. Битовые операции применяются в языках программирования и цифровой технике, изучаются в дискретной математике. Чтобы перевести число из любой системы счисления в десятичную нужно: Каждую исходную цифру умножить на основу системы, поднесенную в степень - номер цифры начиная с нуля, считать СПРАВА, и полученные числа просуммировать. Примеры: Из двоичной 10111: 1*(2^0)+1*(2^1)+1*(2^2)+0*(2^3)+1*(2^4) Из троичной 122012: 2*(3^0)+1*(3^1)+0*(3^2)+2*(3^3)+2*(3^4)+1*(3^5) Из восьмиричной 765: 5*(8^0)+6*(8^1)+7*(8^2) --------- Битовая маска - число в двоичной системе. В параметре UsedProcessors каждый бит указывает включено ли ядро. 0 - означает ядро выключено, 1 означает ядро включено. Нам нужно включить четыре ядра - нужно число 1111 1*(2^0)+1*(2^1)+1*(2^2)+1*(2^3)=1*1 + 1*2 + 1*4 + 1*8=1+2+4+8=15. Значит, UsedProcessors=15. Или, например, нужно включить только 2 ядра: нужно число 11 1*(2^0)+1*(2^1)=1*1 + 1*2=1+2=3. Значит, UsedProcessors=3. --------- В каждой системе счисления столько цифр, какая у неё основа 2: 2 цифры: 0, 1 3: 3 цифры: 0, 1, 2 5: 5 цифер: 0, 1, 2, 3, 4 8: 8 цифер: 0, 1, 2, 3, 4, 5, 6, 7 16: 16 цифер: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F a,b,c,d,e,f - тоже цифры. Просто в 16-ричной системе должно быть 16 цифр, а мы знаем только 10. Поэтому берут, что: A = 10 B = 11 C = 12 D = 13 E = 14 F = 15 ---- Из 16-ричной системы перевести в нашу (десятичную) переводим точно так же: Число 18AF42C 12*(16^0) + 2*(16^1) + 4*(16^2) + 15*(16^3) + 10*(16^4) + 8*(16^5) + 1*(16^6) = 25883692 ------------- Между 2-, 8-, 10-, 16-ричными системами умеет переводить калькулятор винды в режиме "Инженерный". Сверху слева при этом выбирается текущая система: Bin - двоичная Oct - восьмиричная Dec - десятичная (наша) Hex - шестнадцатиричная
__________________
Так как нету кнопки "Фууу", скажу вам прямо... (c) Последний раз редактировалось Foks; 09.05.2010 в 00:28. |
13 пользователя(ей) сказали cпасибо: | D_f (09.05.2010), Hantet (26.05.2010), Konctantin (09.05.2010), lina (25.05.2010), Lordronn (02.02.2012), lovepsone (02.02.2012), MangMan (24.07.2010), partizanes (22.03.2012) |
Метки |
битовые операции |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|