目录
初识二进制
计算机已经成为现代人生活中不可或缺的一部分,有了计算机的帮助,使得我们的生活工作都加以改变,效率提升飞快,当我们在电脑上处理复杂文件时,其实计算机本身是以二进制的方式进行处理运算的。那么,什么是二进制呢?
什么是二级制
指以2为基数的记数系统,以2为基数代表系统是二进位制的。具体表现为0和1.。
二进制的原码、反码、补码
原码
原码是表示数字的一种方式:数字又分为正数和负数,在原码中如何区别正数与负数呢?
一个正数转换为二进制时,其为正数的原码。负数的绝对值在转换为二进制后在最高位补1,这便为负数的原码。
例如:int类型 3 的原码是11B int类型等于4个byte,一个byte又等于8位,所以int类型则占32位
00000000 00000000 00000000 00000011
Int类型 -3的原码是11B,展开后最高位补1
10000000 00000000 00000000 00000011
反码
反码通常是用来由原码求补码或者由补码求原码的过渡码,正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反。
Int 3的反码为:00000000 00000000 00000000 00000011
Int -3的反码为:11111111 11111111 11111111 11111100
补码
补码是计算机把减法运算转化为加法运算的关键编码,正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1。
Int 3的补码为:00000000 00000000 00000000 00000011
Int -3的补码为:11111111 11111111 11111111 11111101
为了更具体的展现原码,反码,补码,将使用如下实例
1.相加
例如:1+1=2在计算机中进行如下运算:
正数的原码、反码、补码都相同,在进行计算时是补码进行运算
00000000 00000000 00000001
+
00000000 00000000 00000001
=
00000000 00000000 00000010
00000000 00000000 00000000 00000010( 转换为10进制) = 0*2^0 + 1*2^1 = 0 + 2 =2
2.相减
例如:1-2=-1在计算机中进行如下运算
首先计算机会将1-2转换为1+(-2)然后在进行运算,然后找出各个数的补码1的原码反码补码都相同为:00000000 00000000 00000001
-2的原码是将其取绝对值后转换为二进制然后在最高位补1,
则为:10000000 00000000 00000010 它的反码是除最高符号位不变其他位取反,
则反码为:11111111 11111111 11111101 它的补码是在反码的基础上加1,
则补码为:11111111 11111111 11111110
最终的计算如下:
00000000 00000000 00000001
+
11111111 11111111 11111110
=11111111 11111111 11111111
根据计算结果找出原码
补码:11111111 11111111 11111111
=
补码:11111111 11111111 11111110
=
原码:10000000 00000000 00000001 =1*2^0 =-1
*正数的原码、反码、补码都一样。
二级制和十进制互换
十进制转二进制
将余数从下到上写出,5的二进制为101000
二进制转十进制
由上可知5的二进制是101000
那如何将101000转成十进制呢??
计算方式是101000从左到右每一位数与2的位数次幂相乘,例如:第一位为1便是1*2^0 ,第二位是0则0*2^1,第三位是1则1*2^2。由于其他位都为零,0与任何数相乘都为0,所以不再一一列出。最后将他们结果相加便是十进制。
1*2^0+0*2^1+1*2^2+…+0*2^5=5
首次写博客,有不足之处,请各位大佬多多指教!