Как работают бить в Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как работают бить в Python?

Сообщение Anonymous »

Я узнал сегодня о битовых операциях, и я узнал, что не (~) обращается все биты, например ,::

01010
to
10101
< /code>

, что означает ~ 10 должно быть -5, но вместо этого я видел, что это -11 (согласно командной строке Python), которая < /p>

01010
to
11011
< /code>

Только два из бита были перевернуты. Кто -нибудь может объяснить, почему это не 10101? Вход в (в режиме байта) 111101011 дает мне -11, но то же самое, введенное в моем коде, дает -117: < /p>

def binaryToInt(biNum, bUnsigned = False):
iNum = 0
bSign = int(biNum[0]) if not (bUnsigned or biNum[-1] == "u") else 0
biNum = biNum[(1 if not (bUnsigned or biNum[-1] == "u") else 0):(len(biNum) if biNum[-1] != "u" else -1)]
for i in xrange(len(biNum)):
iNum += int(biNum) * 2**(len(biNum) - 1 - i)
return (iNum if not bSign else -iNum)

def intToBinary(iNum, bUnsigned = False):
bSign = "1" if iNum < 0 else "0"
iLoopNum = int((iNum ** 2) ** 0.5) #make positive!
biNum = ""
while iLoopNum:
biNum += str(iLoopNum%2)
iLoopNum /= 2
return bSign + biNum[::-1] if not bUnsigned else biNum[::-1] + "u"
< /code>

Может ли один из вас объяснить это? < /p>

Подробнее здесь: https://stackoverflow.com/questions/118 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»