python: Binary Number
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | binary_num = '10000001' ones_complement = '' for bit in binary_num: ones_complement + = '0' if bit = = '1' else '1' print (ones_complement) #加上1 binary_number = '10000011' decimal = 0 newstr = '' for i in range ( len (binary_number)): if binary_number[i] = = '1' : newstr + = '0' decimal + = 2 * * i else : newstr + = '1' decimal + = 0 * * i print (newstr) print ( "{0:b}" . format (decimal)) decimal = decimal + 1 print ( "{0:b}" . format (decimal)) c = '10000001' print ( int (c, 2 )) # 二进制转十进制 a = '11001000' b = int (a, 2 ) # 二进制转十进制 b + = 10 print (b) print ( bin (b)) #十进制转二进制 mm = 0b1100100 mm<< 1 #左移位 >> 右移位 print ( 'move 1:' , bin (mm)) print ( 'move 1:' , "{0:b}" . format (mm)) print ( "{0:b}" . format (b)) #十进格式化二进制 decimal = 200 print ( "{0:b}" . format (decimal)) decimal = decimal + 1 print ( "{0:b}" . format (decimal)) fl = [] kk = "{0:b}" . format (decimal) for ss in kk: fl.append( int (ss)) print (fl) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | 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 = "") |
调用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | def asce(dulist: list ) - > bool : """ 是否升序 :param dulist: :return: """ isasc = False ch = dulist[ 0 ] asc = 1 # 升序记数器 ascending or descending l = len (dulist) for k in range ( 1 , len (dulist)): if (ch < dulist[k]): ch = dulist[k] asc + = 1 if (asc = = l): isasc = True return isasc def desc(dulist: list ) - > bool : """ 是否降序 :param dulist: :return: """ isdes = False ch = dulist[ 0 ] des = 1 # 降序记数器 descending l = len (dulist) for k in range ( 1 , len (dulist)): if (ch>dulist[k]): ch = dulist[k] des + = 1 if (des = = l): isdes = True return isdes |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ls = [ 5 , 7 , 20 , 50 , 70 ] ch = ls[ 0 ] asc = 1 #升序记数器 ascending or descending des = 1 #降序记数器 l = len (ls) for k in range ( 1 , len (ls)): if (ch<ls[k]): ch = ls[k] asc + = 1 ch = ls[ 0 ] for k in range ( 1 , len (ls)): if (ch>ls[k]): ch = ls[k] des + = 1 print (asc,des) if (asc = = l): print ( "asc" ) if (des = = l): print ( "des" ) print (asce(ls)) print (desc(ls)) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | def clen(custome) - > int : """ 计算变量的长度函数 :param custome: :return: """ num = 0 #print(type(custome)) if isinstance (custome, list ): #列表 集合 for k in custome: #print(k) num + = 1 if isinstance (custome, str ): # 字符串 enumerate() iter()遍历字符串 for k in custome: #print(k) num + = 1 if isinstance (custome, int ): #如果是整数,计算它的长度 if (custome = = 0 ): num = 0 else : num = 1 + clen(custome / / 10 ) return num |
1 2 3 4 5 | ls = [ 5 , 7 , 20 , 50 , 70 ] print (clen(ls)) ddd = "hihowareyou" print (clen(ddd)) print (clen( 1023 )) |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2023-05-12 cpp: Observer Pattern II