Python学习日记 Day5-原码、反码、补码、取整函数、天堂地狱

2021/10/4 14:11:15

本文主要是介绍Python学习日记 Day5-原码、反码、补码、取整函数、天堂地狱,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、原码、反码、补码

概念

        原码是计算机机器数中最简单的一种形式,数值位就是真值的绝对值,符号位为“0”时表示正数,符号位为“1”时表示负数,原码又称带符号的绝对值。

        反码和补码的由来参见如下链接

     原码 反码 补码 概念 原理 详解 [MD] - 白乾涛 - 博客园 (cnblogs.com)

计算方法

          一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。

        正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反。

        正数的补码与原码相同,负数的补码为反码的最低位加1(有进项则相应进项)。

Note

        1. 计算机以(-1)^{s}×X中s的数值来判断X的正负,故符号位0正1负。

        2.-128并没有原码和反码表示

        3.七位二进制求原码、反码、补码,先添加符号位补成八位再进行操作。

e.g -0000011 原码:10000011 反码:11111100 补码:11111101

二、取整

        1.int()、//、floor()都是向下取整,即地板除。

e.g 5//2==2 int(5/2)==2

        2.\可将结果转化为浮点数。

e.g 5/2==2.5 

        3.round()四舍五入取整。

e.g round(5/2)==3

        4.ceil()向上取整。

        5.z为复数,用z.real和z.imag取实部虚部时会变成浮点数。

e.g z=1+2j z.real==1.0

        6.abs()用于复数z=a+bj时,结果为\sqrt{a^{2}+b^{2}}

三、一个面试题

Q:两扇门分别通往天堂、地狱,两扇门前都分别站着一个门卫,其中一个只会说谎,另一个绝不说谎,你只能问其中一名门卫一个问题,要先去天堂,这个问题该怎样问呢?

A:只需要让门卫A去问门卫B“通往天堂的门是哪一扇”,如果A说假话,那么A就会将B说的真话反着说;如果A说真话,那么A就会将B说的假话原原本本复述。因此只需要反向选择A回答的那扇门即可。

参考资料

​​​​​​(17条消息) 为什么计算机中数字符号位0表示正数,1表示负数_码飞_CC的博客-CSDN博客_符号位0是正还是负icon-default.png?t=L892https://blog.csdn.net/cc18868876837/article/details/88371491



这篇关于Python学习日记 Day5-原码、反码、补码、取整函数、天堂地狱的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程