2017-08-09 88 views
3

在java中,來獲得1和0的序列中的二進制數的形式,你可以做以下序列1和0的蟒蛇位

(-1 << (4)) 

同時會給我結果

11110000 

既然python不支持signed int,那麼在python中這樣做的等效方式是什麼?理想情況下,我寧願在沒有任何外部庫的情況下執行此操作。

+3

出了什麼問題'0xf << 4'? – Barmar

+0

'0xf0'怎麼樣? – Herb

回答

2

嘗試:

>>> bin(0xf << 4)[2:] 
'11110000' 
>>> 

或者,

>>> print ('{0:b}'.format(0xf << 4)) 
11110000 
>>> '{0:b}'.format(0xf << 4) 
'11110000' 
>>> 
+3

獲得不帶前綴的二進制數字的更好方法是格式(0xf << 4,'b')'。 – Blckknght

+0

那麼,0xf這裏只是-1的十六進制表示? –

+0

@ZaidHumayun,no。 0xF是二進制00001111.左移部分將內容向左移位4位:00001111 << 1使它成爲00011110,而00001111 << 4使它成爲11110000.如果這就是你所需要的,你也可以使用0xF0 = binary 11110000 。 – Herb