Форум: "Прочее";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
ВнизЗавтра пятница. Просто задумался :) Найти похожие ветки
← →
Sha © (2009-01-22 16:56) [0]Определить, равны ли 1 два старших бита числа в его двоичном представлении?
Например, в числах 12, 6, 25 - равны, а в числах 8, 9, 11 - нет.
Хочется чего-нить простого...
← →
Jack128_ (2009-01-22 17:07) [1]Temp := I shr 30;
Result := (Temp = 3) or (Temp = 0)
?
← →
Сергей М. © (2009-01-22 17:09) [2]http://www.intel.com/software/products/documentation/vlin/mergedprojects/analyzer_ec/mergedprojects/reference_olh/mergedProjects/instructions/instruct32_hh/vc20a.htm
← →
Alkid © (2009-01-22 17:11) [3]Я так понял, что трабл в том, что длина двоичного представления нефиксирована?
← →
han_malign © (2009-01-22 17:12) [4]x xor (x shr 1) < x
← →
MBo © (2009-01-22 17:16) [5]i and (i shl 1) < i
← →
БарЛог © (2009-01-22 17:18) [6]некоторое размышление: достаточно узнать, равен ли единице предвоследний (второй справа) бит, т.к. правый всегда равен :)
← →
БарЛог © (2009-01-22 17:19) [7]ой, напутал. старший бит всегда равен (левый).
← →
MBo © (2009-01-22 17:23) [8]>MBo © (22.01.09 17:16) [5]
я неправ, не учел младшие биты
← →
Сергей М. © (2009-01-22 17:32) [9]
function IsTwoMostSignificantBitsSet(Value: Cardinal): Boolean;
asm
mov edx, eax
xor eax, eax
bsr ecx, edx
je @@exit
dec ecx
jl @@exit
bt edx, ecx
setc al
@@exit:
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if IsTwoMostSignificantBitsSet(6) then ShowMessage("Два старших значащих бита установлены");
end;
← →
Sha © (2009-01-22 17:33) [10]han_malign © (22.01.09 17:12) [4]
да )
← →
Sha © (2009-01-22 17:35) [11]Сергей М. © (22.01.09 17:32) [9]
тоже да, но [4] вроде проще
← →
Сергей М. © (2009-01-22 17:37) [12]
> Sha © (22.01.09 17:35) [11]
Кому как)
На вкус и цвет, как говорится..
← →
Юрий Зотов © (2009-01-22 17:51) [13]S = IntToBin(X);
if (S[1] = "1") and (S[2] = "1") then
ShowMessage("Ура!!! Я крутой программер!!!");
:o))))))))))))
А то - XOR"ы там всякие. Это каждый ламер сможет.
← →
han_malign © (2009-01-22 17:57) [14]
> Сергей М. © [9]
80386 Clocks:
BSR r32,r 10+3n
DEC r32 2
BT r,r32 3
SHR r,1 3
XOR r32,r 2
CMP r,r32 2
← →
Сергей М. © (2009-01-22 19:51) [15]
> han_malign © (22.01.09 17:57) [14]
Я и не гнался за производительностью).. Разумеется, нет предела совершенству.
Наглядно ведь ? Наглядно. А наглядность - сестра простоты)
← →
Pavia © (2009-01-22 23:58) [16]
> 80386 Clocks:
Выкинь свой 386 и купи core 2 due у него:
Инструкция Latency Throughput
BSR 2 1
DEC 1 0.5
BT 1 0.33
SHR 1 0.333
XOR 1 0.5
CMP 1 0.5
← →
Дуб © (2009-01-23 07:42) [17]До кучи сюда же, также простая:
Есть два числа b и n(b<=n). Найти сколько чисел меньше 2^n имеют взведенными первые b битов.
← →
AndreyV © (2009-01-23 07:51) [18]> [17] Дуб © (23.01.09 07:42)
> До кучи сюда же, также простая:
>
> Есть два числа b и n(b<=n). Найти сколько чисел меньше 2^n
> имеют взведенными первые b битов.
2^(n-b)
← →
Дуб © (2009-01-23 08:02) [19]> AndreyV © (23.01.09 07:51) [18]
Видимо недопонимание. Я не про первые биты в байте, а первые в записи без первых нулей.
n=3 b=2
11
110
111
Ответ 3, а не 2.
← →
AndreyV © (2009-01-23 08:36) [20]> [19] Дуб © (23.01.09 08:02)
> Видимо недопонимание. Я не про первые биты в байте, а первые
> в записи без первых нулей.
2*2^(n-b)-1
Так что ли.
← →
Дуб © (2009-01-23 08:58) [21]> Так что ли.
Аха. Вид формулы однако у тебя - не признал. :)
Каждому такому числу можно сопоставить k-битное, кроме нуля. Где k= n-b+1
А с помощью k бит выбрасывая 0, можно записать 2^k-1 число.
← →
MBo © (2009-01-23 09:17) [22]Еще задачка:
найти количество n-битовых чисел, в записи которых нет двух нулей рядом
(например, для n=3 их будет 5 штук)
← →
MBo © (2009-01-23 09:51) [23]P.S. ведущие нули здесь не игнорируются.
← →
MBo © (2009-01-23 09:55) [24]P.P.S. Задача может быть генерализована и на системы счисления с большим основанием, например, на десятичную
← →
Sha © (2009-01-23 13:24) [25]f(1)=2;
f(2)=3;
f(n)=f(n-1)+f(n-2);
← →
Sha © (2009-01-23 13:33) [26]P.S. :)
Знаю препода-приколиста, который на этом бы не остановился,
раскрутил бы индукцию в обратную сторону и начал разбор полетов
со случая f(0)=1
← →
MBo © (2009-01-23 15:32) [27]>f(n)=f(n-1)+f(n-2);
Точно. А для k-ричной системы
f(n)= (k- 1) * (f(n-1)+f(n-2))
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.048 c