Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Help умножение 2-х чисел в двоичной системе

6.7K
26 октября 2005 года
kasyava
28 / / 27.07.2005
Люди добрые помогите пожайлуста ... :)


поделитесь кодом умножения 2-х чисел в двоичной системе.... сам чет никак не догоню как это сделать. :(
292
26 октября 2005 года
Matush
726 / / 14.01.2004
Цитата:
Originally posted by kasyava
Люди добрые помогите пожайлуста ... :)


поделитесь кодом умножения 2-х чисел в двоичной системе.... сам чет никак не догоню как это сделать. :(


Множатся точно также ка и в 10-чной системе:

1011
* 10
----
0000
1011
-------
10110

6.7K
26 октября 2005 года
kasyava
28 / / 27.07.2005
Цитата:
Originally posted by Matush
Множатся точно также ка и в 10-чной системе:

1011
* 10
----
0000
1011
-------
10110



ну эт я знаю.....

у меня с написанием кода проблемы... :(

292
26 октября 2005 года
Matush
726 / / 14.01.2004
Цитата:
Originally posted by kasyava
ну эт я знаю.....

у меня с написанием кода проблемы... :(


:) То есть у Тебя есть несколько строк в 2ичной системе, Тебе надо их перемножить и выдать результат?
S1 = '00101'
S2 = '011101'
S3 = результат умножения S1 и S2?

Думаю самое простое решение, это написать 2 функции:
1. Переводит двоичную строку в 10чную
2. Переводит десятичную в двоичную. (есть готовая itoa)
Работа проги проста:
получил строки, перевел в 10чную, перемножил, перевел результат в 2чную, и все.

6.7K
26 октября 2005 года
kasyava
28 / / 27.07.2005
Цитата:
Originally posted by Matush

Думаю самое простое решение, это написать 2 функции:
1. Переводит двоичную строку в 10чную
2. Переводит десятичную в двоичную. (есть готовая itoa)
Работа проги проста:
получил строки, перевел в 10чную, перемножил, перевел результат в 2чную, и все.



эхххх....не все так просто как ты советуешь...

Нужно перемножить не переводя ни в какую другую систему счисления....строго в двоичной..

вот я и мучаюсь... ни как не догоню как это сделать....
Visual Basic только изучаю....

292
26 октября 2005 года
Matush
726 / / 14.01.2004
Цитата:
Originally posted by kasyava

Visual Basic только изучаю....


Ну, тут могу посоветовать лиш учить его дальше. Алгоритм умножения понятен, надо только написать его в коде.

6.7K
26 октября 2005 года
kasyava
28 / / 27.07.2005
Цитата:
Originally posted by Matush
Ну, тут могу посоветовать лиш учить его дальше. Алгоритм умножения понятен, надо только написать его в коде.



Давай без этих остроумностей.....
форумы для чего существуют???Чтоб такие как ты просто так острили чтоли???

не знаешь не отвечай, не можешь ничем помочь тоже не лезь....

6.4K
24 ноября 2005 года
Host
122 / / 22.09.2005
Цитата:
Originally posted by kasyava
Люди добрые помогите пожайлуста ... :)


поделитесь кодом умножения 2-х чисел в двоичной системе.... сам чет никак не догоню как это сделать. :(



MSDN:
Спецификация языка Visual Basic

10.9 Логические операторы

Операторы And, AndAlso, Or, OrElse и Xor называются логическими операторами. Операторы And, Or и Xor вычисляются следующим образом.

Тип Boolean.
Логическая операция And выполняется для двух операндов.
Логическая операция Or выполняется для двух операндов.
Логическая операция исключающего Or выполняется для двух операндов.
Для типов Byte, Short, Integer, Long и всех перечисляемых типов заданная операция выполняется для каждого бита двоичного представления двух операндов.
And. Полученный бит равен 1, если оба бита равны 1; в противном случае полученный бит равен нулю.
Or. Полученный бит равен 1, если любой бит равен 1; в противном случае полученный бит равен нулю.
Xor. Полученный бит равен 1, если любой бит, но не оба бита, равен 1, ; в противном случае полученный бит равен нулю (то есть 1 Xor 0 = 1, 1 Xor 1 = 0).
При выполнении этих операций переполнение невозможно. Операторы перечисляемых типов выполняют поразрядные операции над базовым типом перечисляемого типа, но возвращаемое значение является перечисляемым типом.

Операторы AndAlso и OrElse определяются только для типа Boolean и шунтирования. Другими словами, в некоторых случаях второй операнд не вычисляется во время выполнения.

Если для первого операнда в операции AndAlso вычисляется значение False, выражение возвращает значение False. В противном случае логическая операция And выполняется для двух операндов.
Если для первого операнда в операции OrElse вычисляется значение True, выражение возвращает значение True. В противном случае логическая операция Or выполняется для двух операндов.
Примечание. В случае AndAlso и OrElse первый операнд вычисляется только один раз, а второй операнд либо вычисляется один раз, либо вовсе не вычисляется.
LogicalOperatorExpression ::=
Expression And Expression |
Expression Or Expression |
Expression Xor Expression |
Expression AndAlso Expression |
Expression OrElse Expression

292
24 ноября 2005 года
Matush
726 / / 14.01.2004
Цитата:
Originally posted by Host
.....


Инфа конечно полезная. Только нафига она тут?
Судя по тому что написал касява ему надо перемножить две строки с нулями и единицами. Ему нужна была сама реализация, а не пояснение что 0 and 1 = 0.
Так как алгоритм ему был понятен, а нехватало умения его написать, я и посоветовал учит дальше ВБ.

6.4K
24 ноября 2005 года
Host
122 / / 22.09.2005
Цитата:
Originally posted by Matush
Инфа конечно полезная. Только нафига она тут?
Судя по тому что написал касява ему надо перемножить две строки с нулями и единицами. Ему нужна была сама реализация, а не пояснение что 0 and 1 = 0.
Так как алгоритм ему был понятен, а нехватало умения его написать, я и посоветовал учит дальше ВБ.



Может быть я не правильно понимаю, но:

Цитата:
поделитесь кодом умножения 2-х чисел в двоичной системе



Операторы, выполняющие логические действия в предидущем посте.

А так выполнять эти действия со строками (VB7)

Sub Main()
Dim a As String, b As String, c As String
a = 1011
b = 10
c = a And b
Console.Out.WriteLine(c)
End Sub

292
24 ноября 2005 года
Matush
726 / / 14.01.2004
Что имелось ввиду надо спросить у автора топика.
Я понял что надо сделать умножение строк, в которых двоичные числа. Сделать это как бы не составляет труда.

На счет твоих операторов, которые выполняют эти действия. Операция AND вообще то умножение никогда не делала. Да и OR XOR тут тоже не при делах.

Твой пример AND'ит две строки
a=1011
b=0010
and
c=0010

результат как видиш совсем не сумма :)
292
24 ноября 2005 года
Matush
726 / / 14.01.2004
Ой Блин. Загнался я не хило. Удалите мой предыдущий пост во избежания позора.

Сказывается отсутствие обеда и желание спать...

П.С. Не читайте предыдущий пост вообще
6.4K
25 ноября 2005 года
Host
122 / / 22.09.2005
Цитата:
Originally posted by Matush
Ой Блин. Загнался я не хило. Удалите мой предыдущий пост во избежания позора.

Сказывается отсутствие обеда и желание спать...

П.С. Не читайте предыдущий пост вообще



Естейственно этот код не будет работать, это частный случай. Происходит неявное преобразование из типа Integer в String и наоборот. Вообще-то при выполнении логических операций компилятор автоматически переводит числа из десятичной системы в двоичную, побайтово проводит операции и результат снова переводит в десятичную систему. Если кто знает как вывести стандартными функциями VB число в двоичной форме на экран, поделитесь.

292
25 ноября 2005 года
Matush
726 / / 14.01.2004
Цитата:
Originally posted by Host
Естейственно этот код не будет работать, это частный случай. Происходит неявное преобразование из типа Integer в String и наоборот. Вообще-то при выполнении логических операций компилятор автоматически переводит числа из десятичной системы в двоичную, побайтово проводит операции и результат снова переводит в десятичную систему. Если кто знает как вывести стандартными функциями VB число в двоичной форме на экран, поделитесь.


Сорри, что навис на тебя зря. Еще раз извиняюсь. Я там такого бреда написал. Я думал про одно писал про другое %).
На счет вывода числа в двоичной форме функциями ВБ я незнаю (вообще ВБ практически незнаю). Но с помощью АПИ можно функцией itoa(число, буфер, основание) перевести число в строку. Ставиш основание 2 и число записывается в буфер в двоичной системе. Этот буфер выводиш.

6.4K
25 ноября 2005 года
Host
122 / / 22.09.2005
Цитата:
Originally posted by Matush
Сорри, что навис на тебя зря. Еще раз извиняюсь. Я там такого бреда написал. Я думал про одно писал про другое %).
На счет вывода числа в двоичной форме функциями ВБ я незнаю (вообще ВБ практически незнаю). Но с помощью АПИ можно функцией itoa(число, буфер, основание) перевести число в строку. Ставиш основание 2 и число записывается в буфер в двоичной системе. Этот буфер выводиш.



Больошй сэнкс! То что доктор прописал!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог