㈠ python中按位翻轉~和+ -優先順序一樣,想問下後面兩個符號表示什麼意思
~反碼 1100變成0011
+正數符 +1.5 好像用的很少
-求負數符 -3,或-(-1)得1
㈡ 求助:python如何按位解析二進制數據
可以的,二進制是計算機內的表示方法,處理二進制數據是最基本的能力。
如果是二進制字元串轉十進制:
>>>x='10101010'
>>>int(x,2)
170
如果是從文件或網路中獲取的數據,要知道某一位是0還是1的話,獲取的數據可以按字元讀取,由於一個字元由8位二進製表示,分別讀取1到8位的二進制值就可以了:
>>>get_char_bit=lambdachar,n:(char>>(8-n))&1#從高到低分別為第1~8位
>>>data=b'ab'#在python3中字元串默認是unicode,所以加上b前綴兼容
>>>#在python3中按字元讀取byte字元串是數字,而python2讀出來的卻是字元,但bytearray是一致的都是數字
>>>data=bytearray(data)
>>>result=[]
>>>forcharindata:
foriinrange(1,9):
result.append(get_char_bit(char,i))
>>>result
[0,1,1,0,0,0,0,1,0,1,1,0,0,0,1,0]
還有一種比較簡單的方法是使用內置的bin函數
>>>data=bytearray(b'ab')
>>>result=[]
>>>forcharindata:
result.extend(bin(char)[2:].rjust(8,'0'))
>>>result
['0','1','1','0','0','0','0','1','0','1','1','0','0','0','1','0']
㈢ python中字元串的按位或怎麼實現
a="9F260879CC8EC5A09FB947" a=[:2] a = int(a,16) if a&0x1f==0x1f: print "可以比較啦!" 其中int函數後的16即是要求轉換為16進制。
㈣ python如何實現C語言中的按位與
造成這種區別因為C語言uint8_t有字長限制,為了限制字長可以通過如下操作實現
print(0x80&0xFF)
㈤ 請問python里輸入兩個數,比如是00111000和10000010, 如何把他們當作二進制數進行按位或操作
寫個程序,先轉化為十進制格式或十六進制格式,進行位操作,在轉化為二進制
㈥ python 和 javascript 按位與(&)的區別是什麼 為什麼運算出來的結果不一樣
JS的按位的結果是有符號整數, 而Py的是無符號整數
你可以通過
JS
x = 4023233417
y = 2562383102
r1 = (x & y) >>> 0
來迫使一個有符號整數轉為無符號的
㈦ python中按位翻轉是什麼意思 公式是x =
按位反轉即「按位取反」,特指按位取反運算符 ~,這 是 一 元 運 算 法 ,對 數 據 的 每 個 二 進 制 位 取 反 ,由此【1變為 0,把 0變 為 1】。 例 如 :0010101~1101010 值得注 意的數 ,~ 運 算 符 與 - 運 算 符 不 同 ,~ 21≠ -21。
㈧ 在Python的進制數按位異或問題,怎麼解決
&
按位與
|
按位或
^
按位異或
1.
按位與運算
按位與運算符"&"是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1
,否則為0。參與運算的數以補碼方式出現。
例如:9&5可寫算式如下:
00001001
(9的二進制補碼)&00000101
(5的二進制補碼)
00000001
(1的二進制補碼)可見9&5=1。
按位與運算通常用來對某些位清0或保留某些位。例如把a
的高八位清
0
,
保留低八位,
可作
a&255
運算
(
255
的二進制數為0000000011111111)。
main(){
int
a=9,b=5,c;
c=a&b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
2.
按位或運算
按位或運算符「|」是雙目運算符。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有一個為1時,結果位就為1。參與運算的兩個數均以補碼出現。
例如:9|5可寫算式如下:
00001001|00000101
00001101
(十進制為13)可見9|5=13
main(){
int
a=9,b=5,c;
c=a|b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
3.
按位異或運算
按位異或運算符「^」是雙目運算符。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現,例如9^5可寫成算式如下:
00001001^00000101
00001100
(十進制為12)
main(){
int
a=9;
a=a^15;
printf("a=%d\n",a);
}
㈨ python按位與運算: -10&7 得到6。請解釋一下
因為負數是以補碼的方式參加運算的,可以用計算器查看一下
所以-10&6實際上是0xf6&6,所以是6
㈩ python如何按位進行「與非」計算
a=0b00110011
b=0b01010101
c=0b11101110
print(bin(~(a&b)&255))
print(~(a&b)&255)
~的理解沒有問題
&255保證結果是無符號8位整型,去掉這個系統會按照默認字長帶符號的整型運算