PythonMiner
Ноя. 3, 2015 16:48:40
Здравствуйте друзья,
Помогите пожалуйста, не могу понять в чем проблема при использовании оператора “<<”
нужно получить результат из 1 << 176, VB почему то выводит 65536, хотя значение в Pythone “9578097130411805364…………”
В чем тут подвох ?! суммы поменьше считают правильно, возможно декларировать переменную нужно в VB по другому ?!
Shaman
Ноя. 3, 2015 18:01:40
Одна пошла по кругу.
Если в VB есть тип, позволяющий вместить ‘0b100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000’, то нужно использовать его.
PythonMiner
Ноя. 3, 2015 18:03:50
Shaman
Одна пошла по кругу.Если в VB есть тип, ползволяющий вместить ‘0b100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000’, то нужно использовать его.
Ок, т.е. в Питоне он есть по умолчанию ? ))
Shaman
Ноя. 3, 2015 18:06:14
Очевидно, да.
Romissevd
Ноя. 3, 2015 18:08:38
В данном случае вы используете битовую операцию смещение влево (<<). Т.е Python вам возвращает число двоичное представление, которого 1000000…(176 нолей).
py.user.next
Ноя. 4, 2015 01:01:20
PythonMiner
возможно декларировать переменную нужно в VB по другому ?
Хочешь писать в VB - изучай VB со всеми его ограничениями.
PythonMiner
VB почему то выводит 65536
Значит, там 16-битное ограничение на целочисленные константы.