1.先將int轉為hex字符串,去掉'0x',然后對位數判斷,比如1?--?0x01(而不是0x1),?22?--?0x16;
站在用戶的角度思考問題,與客戶深入溝通,找到牡丹網站設計與牡丹網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都做網站、網站設計、企業官網、英文網站、手機端網站、網站推廣、國際域名空間、虛擬主機、企業郵箱。業務覆蓋牡丹地區。
2.直接將字符串轉為bytearray,比如'0x123456'?--?0x12\0x34\0x56(忽略轉義表示,此處只是討論使用方法);
3.直接將bytearray轉為bytes
def?hexPos(num):
val?=?hex(int(num))[2:]
if?len(val)?%?2?!=?0:
val?=?'0'?+?val
y?=?bytearray.fromhex(val)
if?len(y)?!=?4:
x?=?bytearray(4?-?len(y))
return?bytes(x?+?y)
leetcode上有這么一道題:【136. Single Number】
這個題是給出一個非空列表,里面的元素只有一個只出現了一次,其余都出現了兩次,找出這個只出現了一次的元素。
這個題目很簡單,寫了一下直接提交:
翻了一下討論,發現了一個很簡單快速的方法:
查了一下異或運算,發現找到唯一值是異或運算在python中的主要用途之一。其原理是這樣的:
輸出:70
當a,b都轉換為二進制:
輸出:0b1010與0b1001100
異或運算是將兩個數相同位置(長度不一時要對齊)的數值,不同為1時,結果為1,否則為0 。比如:(0101) ^ (0011) = 0110。
這里a ^ b = 0b1000110,即70。
當兩個數相同時,異或運算結果為0.
from random import seed,randint
str_in=input('請輸入一個字符串:')
you_seed=input('請輸入密碼:')
you_seed=int(you_seed)
#lock
def my_lock(lock_str,lock_seed):
seed(lock_seed)
li_out=[]
for i in lock_str:
li_out.append(chr(ord(i)^randint(0,65535)))
return ''.join(li_out)
my_lock_str=my_lock(str_in,you_seed)
print('原字符串:',str_in)
print('加密字符串:',my_lock_str)
print('還原后字符串:',my_lock(my_lock_str,you_seed))
input()
#python 3.4
網站名稱:Python字節異或函數 python異或
標題鏈接:http://vcdvsql.cn/article22/dopepjc.html
成都網站建設公司_創新互聯,為您提供網站制作、用戶體驗、網頁設計公司、網站維護、網站排名、靜態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯