Форум: "Потрепаться";
Текущий архив: 2003.05.29;
Скачать: [xml.tar.bz2];
ВнизКак работать с двоичными числами? Найти похожие ветки
← →
BillyJeans (2003-05-07 09:22) [0]мне нужно сделать что-то похожее на:
Value := (Value or 00010000 b)
для того, чтобы выставить 5й бит... но вот с признаком двоичной системы у меня как в ассемблере не получилось :(
← →
MBo (2003-05-07 09:34) [1]Value OR (1 shl 4)
← →
Digitman (2003-05-07 09:37) [2]ну а чем hex-формат представления маски не устраивает ?
Value := (Value or $10) - вот и выставлен тот же самый 5-й бит)
уж в кр.случае
Value := (Value or (1 shl 4)) - тот же самый 5-й бит
← →
Юрий Зотов (2003-05-07 09:41) [3]Все хорошо, все верно, но только это 4-й, а не 5-й бит...
:о)
← →
BillyJeans (2003-05-07 09:43) [4]а если мне нужно сделать вот так:
Value := (Value or 10010010b)???
← →
Anatoly Podgoretsky (2003-05-07 09:43) [5]Это степень четвертая, а бит третий, я считал с нуля слева направао :-)
← →
Anatoly Podgoretsky (2003-05-07 09:46) [6]BillyJeans © (07.05.03 09:43)
$92
А откуда ты узнал про двоичную нотацию?
А когда Зотов уроки проводил, ты где был?
Яндекс знает все.
Учиться, учиться и еще раз учиться.
← →
BillyJeans (2003-05-07 09:48) [7]Кто сказал, что бит не пятый?! Двоичную систему подзабыли :)
← →
BillyJeans (2003-05-07 09:51) [8]Я вопрос задал про двоичную систему! Мне шестнадцатеричный вид НЕ НУЖЕН!!!
А двоичная нотация, если кто не знает используется вот где:
asm
or ax, 0000000000010000b
end;
это для тех, кто не знает асма!!!
← →
evvcom (2003-05-07 09:55) [9]To: Знаток асма (BillyJeans):
А чем тебя такая запись не устраивает?
asm
or ax, $10
end;
← →
Anatoly Podgoretsky (2003-05-07 09:58) [10]BillyJeans © (07.05.03 09:51)
Ну не устраивает, так не устраивает, хозяин барин, но в таком случае очень просто, забудь про Паскаль в лице Дельфи.
← →
BillyJeans (2003-05-07 09:58) [11]2 evvcom
Шестнадцатеричная запись не обладает необходимой наглядностью!!!
← →
evvcom (2003-05-07 10:02) [12]
> Шестнадцатеричная запись не обладает необходимой наглядностью!!!
Да что ты говоришь? А в двоичной что легче нулики и единички считать, что на каком месте стоит? Да шестнадцатиричная гораздо нагляднее и проще! Научись быстро тетрады в двоичном виде в уме представлять - и не будет никаких проблем в этом плане!
← →
Anatoly Podgoretsky (2003-05-07 10:02) [13]BillyJeans © (07.05.03 09:58)
Что ты говоришь, а константы тебе нравятся?
← →
BillyJeans (2003-05-07 10:07) [14]Если мне нужно выставить или сбросить 1, 4, 7 и 14 бит я лучше так в двоичной системе и напишу, зачем мне переводить ее в hex??? я не любитель усложнять себе жизнь!
← →
evvcom (2003-05-07 10:13) [15]Что проще воспринять:
$00004091 или 00000000000000000100000010010010?
Вот и подумай, в каком случае жизнь усложняется? А еще проще почитай Anatoly Podgoretsky © (07.05.03 10:02)
← →
Separator (2003-05-07 10:24) [16]А чем Hex не нравиться? тут тоже вес просто:
----------------------------------------------------------
| № бита | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|--------|-----|-----|-----|-----|-----|-----|-----|-----|
| Hex | $01 | $02 | $04 | $08 | $10 | $20 | $40 | $80 |
----------------------------------------------------------
и так далее
← →
Юрий Зотов (2003-05-07 10:25) [17]Еще один воинствующий... знаток ассемблера. Видимо, уже целых пару недель его изучает. К Hex еще не привык, что это упрощение, а не усложнение, тоже еще не понял. Зато пальцы топырить уже научился. Странно... а вроде бы, не мальчик...
← →
Separator (2003-05-07 10:25) [18]эээ, мда
← →
Anatoly Podgoretsky (2003-05-07 10:39) [19]Еще большим упрощением являются битовые константы, весь WinAPi на них построен. Вот это действительно делает жизнь простой, кроме того никто не мешает их делать битоподобными.
← →
BillyJeans (2003-05-07 10:39) [20]для тех, кто в танке:
биты нумеруются с права на лево!!! Т.е. писанина от Separator должна звучать так :
А чем Hex не нравиться? тут тоже вес просто:
----------------------------------------------------------
| № бита | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|--------|-----|-----|-----|-----|-----|-----|-----|-----|
учите системы счисления! и прочтите мой вопрос еще раз, я спросил как сделать, а не чем заменить!!!
← →
BillyJeans (2003-05-07 10:43) [21]2 evvcom
к примеру 00000000000000000100000010010010 я сразу вижу, над какими битами я работаю, а если $00004091 то что тут видно?
← →
evvcom (2003-05-07 10:48) [22]
> биты нумеруются с права на лево!!!
Во новость. Извини, мы не знали! :)
У Separator © (07.05.03 10:24) кроме заголовка в таблице еще имеются данные, которые нормально соответствуют нумерации битов.
Анекдот: "Сестра, может в реанимацию? - Доктор сказал в морг, значит в морг!" Кажется это тот случай.
← →
Romkin (2003-05-07 10:51) [23]а если $00004091 то что тут видно?
0,4,7 биты в первом байте, 3 бит во втором байте - гораздо быстрее, чем считать нулики (нумерую от нуля, ессно)
← →
evvcom (2003-05-07 10:55) [24]
> 3 бит во втором байте
Только не 3, а 6.
Я же говорю, что это тот случай.
← →
Юрий Зотов (2003-05-07 10:57) [25]> BillyJeans © (07.05.03 10:39)
Для тех, кто в соседнем танке.
> биты нумеруются с права на лево!!!
И начиная с нуля. Поэтому - прочтите свой вопрос еще раз и тоже учите системы счисления, крутой Вы наш. Кстати, для платформ x86 (и совместимых с ними) где "право", а где "лево" - вопрос не столь однозначный. Однозначность появляется лишь в трактовке компилятора/ассемблера.
> И, я спросил как сделать, а не чем заменить!!!
После того, как выучите системы счисления (включая шестнадцатиричную), переходите к изучению языков и компиляторов, что и какие из них поддерживают, а что - нет, и почему это так. Там все и прочтете. Спустя какое-то время, надеюсь, сможете написать свой компилятор, где будет все, что Вам угодно. Только к тому времени, думаю, Вы поймете, что Hex все же удобнее, чем Bin.
← →
Anatoly Podgoretsky (2003-05-07 11:00) [26]BillyJeans © (07.05.03 10:39)
Не говори за всех, как нумеровать внутренне дело человека, нумеруют оп разному.
Как сделать тебе давно ответили, в Object Pascal никак, такой синтаксис не поддержан.
← →
BillyJeans (2003-05-07 11:02) [27]Огромное спасибо знатокам, за их исчерпывающие ответы!!!
← →
Digitman (2003-05-07 13:27) [28]
> BillyJeans
для тех, кто "в танке" :
Хамить, сударь, изволь в другом месте !
Да и при условии, что в русский язык ты таки выучишь (прежде чем говорить о "языках" сист5ем счисления), вряд ли это даст достаточное основание для хамства. А в русском языке "справа налево" пишется слитно !
> учите системы счисления
Изволь для начала выучить как следует родной язык ! Если ты - русский.
← →
BillyJeans (2003-05-07 14:44) [29]2 Digitman
на себя посмотри!
← →
Zelius (2003-05-07 15:00) [30]Зря вы на человека набросились, некрасиво выглядит...
Достаточно было ответить, что дельфи не поддерживает двоичных константин.
← →
Digitman (2003-05-07 15:19) [31]
> BillyJeans
Видишь ли, я вовсе не претендую на исключительное знание родного языка и его правил. Да и опечатки у меня, как и у многих других ув.коллег, далеко нередки, равно как и малозначимые (по кр.мере, imho, для чтения и понимания текста) граммат./синтакс./орфогр. и пр. ошибки.
Но ! Когда неприкрытое хамство сопровождается еще и такими вот "перлами" - извини, мне редко удается промолчать и не высказаться по этому поводу
← →
BillyJeans (2003-05-07 15:29) [32]вот такие "перлы" были адресованы предыдущим собеседникам.
← →
_Nicola_ (2003-05-07 16:56) [33]2 BillyJeans
>я сразу вижу, над какими битами я работаю
Видно, что больших проектов ты не писал, иначе давно бы научился нормальными масками пользоваться.
А если все-таки не видно, то можешь на пальцах загибать, вон они у тебя какие!
← →
Fantasist. (2003-05-07 19:07) [34]Эх, даже грустно:
"Ну, дурак!" - "Сам дурак!"
Такое, кстати говоря, встречается только в русских форумах. Хотя, конечно, так веселее. :)
← →
BillyJeans (2003-05-12 11:19) [35]2 _Nicola_ & Fantasist.
О чем это вы???
← →
han_malign (2003-05-12 11:32) [36]const
TAPE_DRIVE_FIXED = $000000001;
TAPE_DRIVE_SELECT = $000000002;
TAPE_DRIVE_INITIATOR = $000000004;
TAPE_DRIVE_ERASE_SHORT = $000000010;
TAPE_DRIVE_ERASE_LONG = $000000020;
TAPE_DRIVE_ERASE_BOP_ONLY = $000000040;
TAPE_DRIVE_ERASE_IMMEDIATE = $000000080;
TAPE_DRIVE_TAPE_CAPACITY = $000000100;
TAPE_DRIVE_TAPE_REMAINING = $000000200;
TAPE_DRIVE_FIXED_BLOCK = $000000400;
TAPE_DRIVE_VARIABLE_BLOCK = $000000800;
TAPE_DRIVE_WRITE_PROTECT = $000001000;
TAPE_DRIVE_EOT_WZ_SIZE = $000002000;
TAPE_DRIVE_ECC = $000010000;
TAPE_DRIVE_COMPRESSION = $000020000;
TAPE_DRIVE_PADDING = $000040000;
TAPE_DRIVE_REPORT_SMKS = $000080000;
TAPE_DRIVE_GET_ABSOLUTE_BLK = $000100000;
TAPE_DRIVE_GET_LOGICAL_BLK = $000200000;
TAPE_DRIVE_SET_EOT_WZ_SIZE = $000400000;
TAPE_DRIVE_RESERVED_BIT = $080000000;
.............
if((DrivePara.FeaturesLow and TAPE_DRIVE_GET_LOGICAL_BLK)<>0)then...
...........
CreatFile(...,FILE_SHARE_READ or FILE_SHARE_WRITE,...)
et cetera
- гораздо нагляднее
- надеюсь, что такой побитовые or,and,xor,not - объяснять не надо
← →
BillyJeans (2003-05-12 11:41) [37]Похоже han_malign читать не умеет.... :(
на какой мне hex???
← →
han_malign (2003-05-12 11:44) [38]FILE_SHARE_READ or FILE_SHARE_WRITE
- это hex?????
в таком случае 00010010b - это тоже hex, только в бинарной мнемонике.
← →
BillyJeans (2003-05-12 11:47) [39]2 han_malign
ты гляжу самый умный :)
hex это то, что ты написал - $080000000;
а вопрос был кокраз про 00010010b!!!
← →
han_malign (2003-05-12 11:57) [40]> hex это то, что ты написал - $080000000;
- я так же мог написать 2147483648(10000000000000000000000000000000b) - от этого машинное представление менее бинарным не станет.
З.Ы. Что бы пресечь дальнейшие препирательства, добавлю
((1 shl 3)or(1 shl 10))- это константа, вычисляемая на этапе компиляции
DIXI
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.05.29;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.009 c