Help умножение 2-х чисел в двоичной системе
поделитесь кодом умножения 2-х чисел в двоичной системе.... сам чет никак не догоню как это сделать. :(
Люди добрые помогите пожайлуста ... :)
поделитесь кодом умножения 2-х чисел в двоичной системе.... сам чет никак не догоню как это сделать. :(
Множатся точно также ка и в 10-чной системе:
1011
* 10
----
0000
1011
-------
10110
Множатся точно также ка и в 10-чной системе:
1011
* 10
----
0000
1011
-------
10110
ну эт я знаю.....
у меня с написанием кода проблемы... :(
ну эт я знаю.....
у меня с написанием кода проблемы... :(
:) То есть у Тебя есть несколько строк в 2ичной системе, Тебе надо их перемножить и выдать результат?
S1 = '00101'
S2 = '011101'
S3 = результат умножения S1 и S2?
Думаю самое простое решение, это написать 2 функции:
1. Переводит двоичную строку в 10чную
2. Переводит десятичную в двоичную. (есть готовая itoa)
Работа проги проста:
получил строки, перевел в 10чную, перемножил, перевел результат в 2чную, и все.
Думаю самое простое решение, это написать 2 функции:
1. Переводит двоичную строку в 10чную
2. Переводит десятичную в двоичную. (есть готовая itoa)
Работа проги проста:
получил строки, перевел в 10чную, перемножил, перевел результат в 2чную, и все.
эхххх....не все так просто как ты советуешь...
Нужно перемножить не переводя ни в какую другую систему счисления....строго в двоичной..
вот я и мучаюсь... ни как не догоню как это сделать....
Visual Basic только изучаю....
Visual Basic только изучаю....
Ну, тут могу посоветовать лиш учить его дальше. Алгоритм умножения понятен, надо только написать его в коде.
Ну, тут могу посоветовать лиш учить его дальше. Алгоритм умножения понятен, надо только написать его в коде.
Давай без этих остроумностей.....
форумы для чего существуют???Чтоб такие как ты просто так острили чтоли???
не знаешь не отвечай, не можешь ничем помочь тоже не лезь....
Люди добрые помогите пожайлуста ... :)
поделитесь кодом умножения 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
.....
Инфа конечно полезная. Только нафига она тут?
Судя по тому что написал касява ему надо перемножить две строки с нулями и единицами. Ему нужна была сама реализация, а не пояснение что 0 and 1 = 0.
Так как алгоритм ему был понятен, а нехватало умения его написать, я и посоветовал учит дальше ВБ.
Инфа конечно полезная. Только нафига она тут?
Судя по тому что написал касява ему надо перемножить две строки с нулями и единицами. Ему нужна была сама реализация, а не пояснение что 0 and 1 = 0.
Так как алгоритм ему был понятен, а нехватало умения его написать, я и посоветовал учит дальше ВБ.
Может быть я не правильно понимаю, но:
Операторы, выполняющие логические действия в предидущем посте.
А так выполнять эти действия со строками (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
Я понял что надо сделать умножение строк, в которых двоичные числа. Сделать это как бы не составляет труда.
На счет твоих операторов, которые выполняют эти действия. Операция AND вообще то умножение никогда не делала. Да и OR XOR тут тоже не при делах.
Твой пример AND'ит две строки
a=1011
b=0010
and
c=0010
результат как видиш совсем не сумма :)
Сказывается отсутствие обеда и желание спать...
П.С. Не читайте предыдущий пост вообще
Ой Блин. Загнался я не хило. Удалите мой предыдущий пост во избежания позора.
Сказывается отсутствие обеда и желание спать...
П.С. Не читайте предыдущий пост вообще
Естейственно этот код не будет работать, это частный случай. Происходит неявное преобразование из типа Integer в String и наоборот. Вообще-то при выполнении логических операций компилятор автоматически переводит числа из десятичной системы в двоичную, побайтово проводит операции и результат снова переводит в десятичную систему. Если кто знает как вывести стандартными функциями VB число в двоичной форме на экран, поделитесь.
Естейственно этот код не будет работать, это частный случай. Происходит неявное преобразование из типа Integer в String и наоборот. Вообще-то при выполнении логических операций компилятор автоматически переводит числа из десятичной системы в двоичную, побайтово проводит операции и результат снова переводит в десятичную систему. Если кто знает как вывести стандартными функциями VB число в двоичной форме на экран, поделитесь.
Сорри, что навис на тебя зря. Еще раз извиняюсь. Я там такого бреда написал. Я думал про одно писал про другое %).
На счет вывода числа в двоичной форме функциями ВБ я незнаю (вообще ВБ практически незнаю). Но с помощью АПИ можно функцией itoa(число, буфер, основание) перевести число в строку. Ставиш основание 2 и число записывается в буфер в двоичной системе. Этот буфер выводиш.
Сорри, что навис на тебя зря. Еще раз извиняюсь. Я там такого бреда написал. Я думал про одно писал про другое %).
На счет вывода числа в двоичной форме функциями ВБ я незнаю (вообще ВБ практически незнаю). Но с помощью АПИ можно функцией itoa(число, буфер, основание) перевести число в строку. Ставиш основание 2 и число записывается в буфер в двоичной системе. Этот буфер выводиш.
Больошй сэнкс! То что доктор прописал!