二进制的秘密

博客介绍了二进制和十进制的计数规则,二进制逢2进1,数字为0、1,基数是2;十进制逢10进1,数字为0 - 9,基数是10。还说明了计算机采用二进制是因成本优势,以及二进制转十进制的方法是将1位置对应权值累加求和。

逢2进1的计数规则(重要)

2进制

规则 : 逢2进1

数字 : 0 1

权 : 128 64 32 16 8 4 2 1

基数 : 2

10进制计数规则

10进制

规则 : 逢10进1

数字 : 0 1 2 3 4 5 6 7 8 9

权 : 万 千 百 十 个

基数 : 10

计算机为啥是2进制? 便宜 ! ! !成本优势明显! ! !

如何将2进制转换为10进制 :  将1位置对应权值累加求和 

00000000 00000000 00000000 00000001 = 1
00000000 00000000 00000000 00000010 = 2
00000000 00000000 00000000 00000011 = 2+1 = 3
00000000 00000000 00000000 00000100 = 4
00000000 00000000 00000000 00000101 = 4+1 = 5
00000000 00000000 00000000 00000110 = 4+2 = 6
00000000 00000000 00000000 00000111 = 4+2+1=7
00000000 00000000 00000000 00001000 = 8
00000000 00000000 00000000 00001001 = 8+1=9
00000000 00000000 00000000 00001010 = 8+2=10
00000000 00000000 00000000 00001011 = 8+2+1=11
00000000 00000000 00000000 00001100
00000000 00000000 00000000 00001101
00000000 00000000 00000000 00001110
00000000 00000000 00000000 00001111
00000000 00000000 00000000 00010000
...
00000000 00000000 00000000 00011001 = 16+8+1=25
...
00000000 00000000 00000000 01101000 = 64+32+8=104
...
package binary ;
public class Demo01 {
public static void main ( String [] args )
{
/*
* 如何查看整数的 2 进制存储情况
* - java 编译时候,将数字编译为 2 进制数
* - 运行期间变量中存储的是 2 进制数
* - 输出变量时候, Java 利用 API 方法,将 2
进制转换为 10 进制字符串
* 利用 valueOf 方法转换!
* - Integer.toBinaryString(n) 将整
n 在内存中 2 进制情况显示出来
*/
int n = 50 ; //n=110010
System . out . println ( n ); // 利用 valueOf
转换 2 进制为 10 进制字符串输出
System . out . println ( Integer . toBinaryString (
n ));
System . out . println ( Integer . toBinaryString (
104 ));
/*
* 输出 0~200 2 进制, 手工计算 20 个数的 10
进制值,编程验证
*/
for ( int i = 0 ; i < 200 ; i ++ ){
System . out . println ( Integer . toBinaryString (
i ));
  }
 }
}
什么是16进制 
逢16进1的计数规则
16进制用途 : 16进制用于缩写2进制
= 2进制书写非常繁琐
= 16进制的基数是2进制的基数4次方,2进制每4位数可以缩写为1个16进制数
package binary ;
public class Demo02 {
public static void main ( String [] args )
{
/*
* 2 进制与 16 进制
* - Java7 提供了 2 进制字面量前缀 0b
* 可以在数字中添加下划线,不影响数值
* - 2 进制直接书写非常繁琐
* - 16 进制缩写 2 进制就非常方便
* 2 进制的最低位开始, 每 4 位数缩写为 1
16 进制数 补码
计算中一种表示有符号数编码,其核心思想就是将固定
位数 2 进制分一般作为负数。
如何将固定位数 2 进制分一半作为负数?
4 2 进制数讲解如何设计补码
* - 0x 16 进制的前缀
* - 计算内部没有 10 进制,没有 16 进制,只有
2 进制!
*/
int n = 0b11_0010 ; //32+16+2=50
System . out . println ( n );
n =
0b0001_1001_1111_0001_0100_0011_1111_0101 ;
// 1 9 f 1 4 3
f 5
System . out . println ( Integer . toBinaryString (
n ));
n = 0x19f143f5 ;
System . out . println ( Integer . <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值