Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
3-94710
Пикулев Евгений
2003-05-08 05:57
2003.05.29
Как из одной таблицы принять данные в другую такуюже


1-94946
Fenix_
2003-05-17 03:26
2003.05.29
байт знака числа


3-94726
Olga
2003-04-29 13:13
2003.05.29
Как заставить базу понимать запятую в качестве разделителя?


3-94745
Alex_t
2003-05-10 21:44
2003.05.29
что за расширение gbk для базы данных


4-95174
mm0
2003-04-01 12:07
2003.05.29
Проблема в установке Hook





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский