计算机中的整数是用补码存储的,最高位为符号位,C语言也遵从同样的规则。如果最高位为0则为正数,求值的时候,直接转为10进制即可。
最高位如果为1代表为负数,求值的时候,需要先把二进制的值按位取反,然后加1得到负数绝对值(相反数)的二进制码,然后转为10进制,加上负号即可。
以char型为例,char占一个字节,即8位。对于二进制值B10110011转换十进制过程为:先取反,即1变0,0变1,得到:B0100 1100再加1:B0100 1101转为十进制,即按照每位的权值乘上对应位的值,结果相加即可。十进制值=0*2^7 + 1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0=0+64+0+0+8+4+0+1=77加上符号,最终的十进制值就是-77。即B10110011 表示的十进制值为-77。
负数的二进制是通过将该负数的绝对值的二进制表示形式取反,并在末尾加1得到。对于-39,首先将其绝对值39转换为二进制,即100111。然后,将每一位取反得到011000,并在末尾加1得到011001。因此,-39的二进制表示为011001。总结来说,负数的二进制表示形式是将其绝对值的二进制表示取反,然后在末尾加1。
一般来说,在计算机内部有符号数都是以补码形式表示的。
举个例子:按8位二进制考虑,+5的二进制 是00000101,补码也是 00000101; -5的二进制源码是 10000101,反码是11111010,补码就是 反码加1即:11111011。 |-5| = +5,其二进制,也就是它的补码,都是 00000101。
备注:一个正数X的原码、补码、反码均为其本身。一个二进制负数的原码、补码、反码可用公式求得;一个负数的原码只要将符号位变为1,而其它都不变,一个负数的反码只要将原码除符号位外其它位按位求反即可,一个负数X的补码可用列方法求得:写出X的原码,将其按位求反,再在末尾加上1即可。
到此,以上就是小编对于负数用二进制怎么表示出来的问题就介绍到这了,希望这4点解答对大家有用。
网站名称:负数用二进制怎么表示
网页地址:http://www.shufengxianlan.com/qtweb/news24/342124.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联