因此,該函數所要做的就是要求輸入文件名,k位二進制字符串以及n次寫入k位二進制字符串的次數。如何製作一個長度爲k比特的二進制字符串
def makeStrings():
fileName = str(input("File Name: "))
k = input("Bits Input: ")
n = int(input("Number of Strings: "))
outputFile = open(fileName, "w")
counter = 0
while (counter < n):
randomNumber = random.randint(0, 9223372036854775808) #that big number is the max representation of a 64bit binary string
binary = ('{:0' + str(k) + 'b}').format(randomNumber)
outputFile.write(str(binary) + "\n")
counter = counter + 1
outputFile.close()
所以我的問題是,該功能的作品。它完成它所要做的事情,只是它不會將二進制格式化爲k位長。所以說,例如我可以從隨機數中得到任何二進制表示,但我只希望它們有k位長。所以如果我讓k = 8,它應該給我8位長的隨機8位二進制字符串,或者如果我使k = 15,它應該給我隨機的15位二進制字符串。
所以說,比如我輸入的是
>>> FileName: binarystext.txt #Name of the file
>>> 16 #number of bits for binary string
>>> 2 #number of times the k-bit binary string is written to the file
應該寫入文件中的以下
1111110110101010
0001000101110100
相同的表示將應用於任何位二進制字符串。 2,3,8,32等
我想也許將所有的數字拆分爲它們表示的二進制形式,例如8位的0-255,例如,如果k = 8,我只是格式化它,但那樣會這意味着我將不得不這樣做很多次。
現在我所得到的是
1010001100000111111001100010000001000000011010111
或其他一些很長的二進制字符串。
哇,謝謝,我想我會要做大量的嵌套循環或if語句。這對我有效。 – thatoneguy