我不理解format(n,02b)n不是要求十进制的数字吗 然后这里题目给出的n我有两个疑惑 第一:题定义了n的类型是int 而实际上前面有很多个0 那为什么我在print的时候不会报错?第二:print起到去0的作用而不是转化成二进制?
![](https://profile-avatar.csdnimg.cn/ddf59922979a415ca208aa7a0d21dc54_m0_62277756.jpg!4)
Python有关函数输入获取
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 於黾 2021-12-22 14:01关注
你能问出这种问题来,说明你根本不理解到底什么是int,什么是str,需要恶补计算机硬件基础知识。
一个数据,它存储在硬盘里也好,存储在内存里也好,都只能是二进制方式存储的,因为计算机里只有1和0.
不同的数据类型只是编码格式有区别,数据在本质上都是二进制。
那么一个int,它里面放的到底是10进制,还是8进制,还是2进制,还是16进制呢?其实就是二进制,没有别的进制。
你写代码的时候写个8+10,编译器会把这个字符串按照10进制的方式转换成2进制,再进行计算。
-=-=-=
重点来了:所谓16进制、10进制、8进制,都是给人看的,计算机只认识2进制
只有在数字转str、str转数字的过程中,才涉及到进制转换的问题,计算机内部根本不需要转换。
-=-=-
最后,前面补0也同样是为了给人看的,是int转str的时候才会有的事情,计算机内部存储的时候是4字节是8字节都已经确定好了,不存在补0不补0的问题。
print打印的时候默认不打印前置的0而已,当然你也可以写格式化字符串要求前面补0.
-=-=-=
另,人眼能够看到的只有字符串,纯数字只存在于内存中,人是看不见的。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵