Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
4-1207145739
kolj
2008-04-02 18:15
2009.03.29
Tapi -> lineanswer


1-1208178791
Версия для печати
2008-04-14 17:13
2009.03.29
Как сменить цвет заголовка колонок ListView?


15-1233314347
Mozart
2009-01-30 14:19
2009.03.29
portable?


1-1208165272
VictoR407
2008-04-14 13:27
2009.03.29
Кокое hook-имя клавиши ScrollLock?


15-1231814498
Kerk
2009-01-13 05:41
2009.03.29
Медицина





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский