格式化作业问题
q = Truewhile q:
num = input('请输入一个整数(输入Q结束程序):')
if num != 'Q':
num = int(num)
print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
print('十进制 -> 二进制 : %d -> ' % num, bin(num))
else:
q = False
请问第 6\7行的0o 和 0x有什么意义
另外运行二进制的时候 显示的结果前会有一个0b是为什么 如:8-> 0b1000 第6行0x 第七行0o{:10_266:} 分别是十六进制和八进制的表示方法,固定的,相当于是个符号
比如十六进制0x12其实就是十进制18
八进制0o15 其实是十进制13
二进制0b10其实就是十进制2 本帖最后由 昨非 于 2020-8-31 22:51 编辑
十泉浩 发表于 2020-8-31 22:40
第6行0x 第七行0o
只是一种表示方法而已,在这个两个符号【前缀】后面的数可以按进制随意转换 以0x开始的数据表示16进制
一些编程语言中常常以数字0开始表明该数字是八进制
应该是这个意思吧
不影响运算,仅仅是作为标记 出现在上述代码里,其实是以字符串的形式在转换后的各进制数前加了两个字符而已 谢谢楼上两位大神回答,那二进制的那个0b可以有什么方式去掉呢?总感觉多了两个字符串比较多余 昨非 发表于 2020-8-31 22:47
分别是十六进制和八进制的表示方法,固定的,相当于是个符号
比如十六进制0x12其实就是十进制18
那二进制的那个0b可以有什么方式去掉呢?总感觉多了两个字符串比较多余 疾风怪盗 发表于 2020-8-31 22:48
以0x开始的数据表示16进制
一些编程语言中常常以数字0开始表明该数字是八进制
应该是这个意思吧
那二进制的那个0b可以有什么方式去掉呢?总感觉多了两个字符串比较多余 本帖最后由 疾风怪盗 于 2020-8-31 23:09 编辑
十泉浩 发表于 2020-8-31 23:07
那二进制的那个0b可以有什么方式去掉呢?总感觉多了两个字符串比较多余
二进制那个不能去掉的吧,bin()生成的,要去掉就切片bin(num)
十泉浩 发表于 2020-8-31 23:06
那二进制的那个0b可以有什么方式去掉呢?总感觉多了两个字符串比较多余
这是一种习惯,(建议保留)不想要的话就不能调用bin()函数了,而是要用类似前两种的方法
十泉浩 发表于 2020-8-31 23:07
那二进制的那个0b可以有什么方式去掉呢?总感觉多了两个字符串比较多余
没事,我刚刚试了,确实不行,就切片处理吧 昨非 发表于 2020-8-31 23:12
没事,我刚刚试了,确实不行,就切片处理吧
√,切片这种骚操作确实没想到 十泉浩 发表于 2020-8-31 23:13
√,切片这种骚操作确实没想到
其实真的没必要,那是国际标准格式{:10_277:} 昨非 发表于 2020-8-31 23:14
其实真的没必要,那是国际标准格式
哦哦好的,本小白还不太适应~~
页:
[1]