【问题描述】
已知一个列表,这个列表中的每个元素都是负整数,依次把这个列表中的每个数转成用32位二进制表示的补码形式,放入另外一个列表进行输出。
【输入形式】
用列表的形式进行输入,包括方括号,每个元素用逗号分隔
【输出形式】
直接用print输出列表
【样例输入】
[-1,-2,-3]
【样例输出】
['0b11111111111111111111111111111111', '0b11111111111111111111111111111110', '0b11111111111111111111111111111101']
【样例说明】
输出列表中的每个元素,都是对应的负整数的二进制形式。
可以使用Python内置函数bin()将负整数转化为补码形式的二进制字符串,然后将其添加到一个新的列表中。具体实现如下:
num_list = [-1, -2, -3]
result_list = []
for num in num_list:
bin_str = bin(num & 0xffffffff) # 将负整数转换为32位二进制补码字符串
result_list.append(bin_str)
print(result_list)
输出结果为:['0b11111111111111111111111111111111', '0b11111111111111111111111111111110', '0b11111111111111111111111111111101']
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
注意:使用循环结构语句实现,直接输出结果不计分。
任务三:实现统计同构数关键算法并绘制流程图(30 分)
编写程序输出 2~99 之间的同构数。同构数是指这个数为该数平 方的尾数,
例如 5 的平方为 25,6 的平方为 36,25 的平方为 625, 则 5、6、25 都为同构数。
注意:调用带有一个输入参数的函数(或方法)实现,
此函数(或 方法)用于判断某个整数是否为同构数,
输入参数为一个整型参数, 返回值为布尔型(是否为同构数)。
-->
<script>
//执行效率破n位长度的数
var num = prompt("请输入你需要测试的同构数:2~99之间");
isNum(num) ? alert("是同构数") : alert("不是同构数");
function isNum(num) {
var x = 10;
for(var i = 1; i < num.length; i++) {
x *= 10;
}
return Math.pow(num, 2) % x == num;
}
</script>
</body>
</html>