將整數旋轉為固定位數

2021-09-29 19:32:50 字數 1297 閱讀 8491

我正在寫乙個python**,它檢視列表,並根據元素左移最低有效位1位並根據條件在最低有效位處附加1 或 0。 最大計數應為1023,因為它應該僅為10bit。 如果數量超過1022,如何建立3位最高有戲位為零,該如何構建。 我已經為此編寫了**,但是給出了錯誤的結果。

readdata=file.readline()

lht=[0]*1024

lpt=[1]*1024

ghr=0

while readdata:

pc,data=readdata.split(' ')

pc=pc[-3:]

if pc in lht:

pc1=pc[-2:]

pc1=int(pc1)

if 't' in data:

lpt[pc1]=lpt[pc1]+1

ghr=ghr<<1

ghr=ghr+1

if ghr>=1023:

ghr=ghr-1016

print("t",ghr)

if 'n' in data:

lpt[pc1]=lpt[pc1]-1

ghr=ghr<<1

ghr=ghr+0

if ghr>=1023:

ghr=ghr-1016

print("n",ghr)

else:

readdata=file.readline()

我得到錯誤讀數:

t 1

n 2t 5

n 10

t 21

n 42

t 85

n 170

t 341

n 682

t 349

n 698

n 762

t 509

n 1018

t 1021

n 1026

t 1037

n 1058

t 1101

n 1186

t 1357

n 1698

n 2380

n 3744

n 6472

t 11929

n 22842

n 44668

t 88321

n 175626

n 350236

n 699456

我該如何解決?

預期輸出:如果我的bin(1023)= 1111111111,那麼我想刪除最高位,如0001111111

答案,參閱

C cout輸出固定位數

說一下c 中的輸出控制,先交代一下系統環境 在c 程式設計中經常會遇到浮點數的處理,尤其是對浮點數的位數有要求,在c語言中printf可通過語法快速實現,如下 double a 1e 5 1 x 10 5 printf 6lf a 即可達到以下效果 c 是c語言的公升級版,有著比c語言更加多的控制輸...

C語言將字串轉為整數

1 c語言有atoi atol atof等庫函式,可分別把ascii編碼的字串轉化為int long float型別的數字。需要注意的是,這個幾個函式是c語言提供的擴充套件功能,並不是標準的函式,必須引入標頭檔案 include 若需要移植性,請用sscanf函式。例如 int num atoi 1...

實現 atoi,將字串轉為整數。

實現atoi,將字串轉為整數。在找到第乙個非空字元之前,需要移除掉字串中的空格字元。如果第乙個非空字元是正號或負號,選取該符號,並將其與後面盡可能多的連續的數字組合起來,這部分字元即為整數的值。如果第乙個非空字元是數字,則直接將其與之後連續的數字字元組合起來,形成整數。字串可以在形成整數的字元後面包...