有時在設計演算法時我們需要將字母轉為二進位制然後進行操作。比較簡單的方法是將字母轉為ascii碼再做與或非的操作:
a =
'qwerty'
b ='asdfgh'
tmp =
# 輸出兩個字串按位做與操作後的二進位制序列
for i in
range
(len
(a))
: tmp.
(bin
(ord
(a[i])&
ord(b[i]))
.replace
('0b',''
))res =''.
join
(tmp)
print
(res)
# 輸出兩個字串按位做與操作後形成的新字串
for i in
range
(len
(a))
: tmp.
(chr
(ord
(a[i])&
ord(b[i]))
.replace
('0b',''
))res =''.
join
(tmp)
print
(res)
如果資料一開始就是二進位制形式,那麼要逐位運算,注意邏輯運算子& | ~ ^的運算元須為整數,所以要先用int轉換。但是注意不能將整個二進位制序列直接轉為整數,否則數字就變了,比如二進位制序列 10010 實際表示18,但直接轉為整數就成了一萬零一十。
a =
'011001'
b ='101011'
res =
''# 輸出兩個二進位制序列按位與操作後的新二進位制序列
for i in
range
(len
(a))
: res +=
str(
int(a[i])&
int(b[i]))
print
(res)
# 輸出兩個二進位制序列按位與操作後的二進位制序列對應的整數
for i in
range
(len
(a))
: res +=
str(
int(a[i])&
int(b[i]))
print
(int
(res, base=2)
)
二進位制求和 兩個字串表示二進位制的數字
現獲取道兩個字串長度最長的n,將char型別轉化為int型別,設定car來接收進製,然後迴圈之後,再判斷car是否為1,如果為1,用stringbuilde型別來接收,最後在反轉一下,呼叫tostring方法返回。package com.lhb.offer author lhb date 2022 ...
將截斷字串或二進位制資料 語句終止
1 今天執行 alter table tblvainfo alter column id varchar not null 時候出現 訊息8152,級別16,狀態14,第1 行 將截斷字串或二進位制資料。語句已終止。查閱後知道,是原來我在修改字段長度的時候表中有資料,如果這些資料很重要,可以講這些資...
MSSQL 將截斷字串或二進位制資料問題的解決方法
地tqsad圖資料存放在sqlserver 2008中,使用maptqsadxtreme7 開發時,使用feature.update 方法時出錯的提示包含 mssql tqsad將截斷字串或二進位制資料 主要原因就是給某個字段賦值時,內容大於欄位的長度或型別不符造成的 解決方法 乙個是修改資料庫字段...