def binary_to_decimal(binary_number): """ :param binary_number: :return: """ decimal = 0 for i in range(len(binary_number)): if binary_number[i] == '1': decimal += 2 ** i return decimal def one_complement(binary_number): """ :param binary_number: :return: """ decimal = binary_to_decimal(binary_number) return decimal + 1 def pagingNum(ptotal, verypnum): """ 打包裝的箱數計算 :param ptotal: 總數量 :param verypnum: 每個包裝打包的數量 :return: 返回包裝數量 """ pagenumber=0 for k in range(0,ptotal,verypnum): pagenumber+=1 return pagenumber # Returns '0' for '1' and '1' for '0' def flip(c): return '1' if (c == '0') else '0' # Print 1's and 2's complement of # binary number represented by "bin" def printOneAndTwosComplement(bin): n = len(bin) ones = "" twos = "" # for ones complement flip every bit for i in range(n): ones += flip(bin[i]) # for two's complement go from right # to left in ones complement and if # we get 1 make, we make them 0 and # keep going left when we get first # 0, make that 1 and go out of loop ones = list(ones.strip("")) twos = list(ones) for i in range(n - 1, -1, -1): if (ones[i] == '1'): twos[i] = '0' else: twos[i] = '1' break i -= 1 # If No break : all are 1 as in 111 or 11111 # in such case, add extra 1 at beginning if (i == -1): twos.insert(0, '1') print("1's complement: ", *ones, sep="") print("2's complement: ", *twos, sep="")
調用:
binary_num = '101010' ones_complement = '' for bit in binary_num: ones_complement += '0' if bit == '1' else '1' print(ones_complement) binary_number = '101010' one_complement(binary_number) print(ones_complement) bin = "101010" printOneAndTwosComplement(bin.strip("")) pag=56 co=pagingNum(pag,12) print(co)
binary_num = '101010' ones_complement = '' for bit in binary_num: ones_complement += '0' if bit == '1' else '1' print(ones_complement) binary_number = '101010' one_complement(binary_number) print(ones_complement) bin = "101010" printOneAndTwosComplement(bin.strip("")) decimal = 0 for i in range(len(binary_number)): if binary_number[i] == '1': decimal += 2 ** i print("0{0:b}".format((decimal))) decimal=decimal+1 print("0{0:b}".format((decimal))) pag=56 co=pagingNum(pag,12) print(co)