当前位置:网站首页 > Java基础 > 正文

java语言基础十进制



C 语言基础

二进制

我们平时使用的数字都是由 0~9 共十个数字组成的,因为逢十进一(满十进一)叫做十进制(Decimalism)。十进制是在人类社会发展过程中自然形成的,它符合人们的思维习惯,例如人类有十根手指,也有十根脚趾。在计算机内部,数据都是以二进制的形式存储的,二进制是学习编程必须掌握的基础。用0、1两个数字来表示数值,这就是二进制(Binary)。例如,数字 0、1、10、111、100、 都是有效的二进制。

二进制加减法和十进制加减法的思想是类似的:

  • 对于十进制,进行加法运算时逢十进一,进行减法运算时借一当十;
  • 对于二进制,进行加法运算时逢二进一,进行减法运算时借一当二。

1) 二进制加法:1+0=1、1+1=10、11+10=101、111+111=1110

2) 二进制减法:1-0=1、10-1=1、101-11=10、1100-111=101

八进制

除了二进制,C语言还会使用到八进制。八进制有 0~7 共8个数字,基数为8,加法运算时逢八进一,减法运算时借一当八。

1) 八进制加法:3+4=7、5+6=13、75+42=137、2427+567=3216

2) 八进制减法:6-4=2、52-27=23、307-141=146、7430-1451=5757

十六进制

除了二进制和八进制,十六进制也经常使用,甚至比八进制还要频繁。十六进制中,用A来表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有 0~F 共16个数字,基数为16,加法运算时逢16进1,减法运算时借1当16。(不区分大小写)

1) 十六进制加法:6+7=D、18+BA=D2、595+792=D27、2F87+F8A=3F11

2) 十六进制减法:D-3=A、52-2F=23、E07-141=CC6、7CA0-1CB1=5FEF

进制转换

二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。

假设当前数字是 N 进制,那么:

  • 对于整数部分,从右往左看,第 i 位的位权等于Ni-1
  • 对于小数部分,恰好相反,要从左往右看,第 j 位的位权为N-j。

例如,将八进制数字 53627 转换成十进制:

 

再如,将十六进制数字 9FA8C 转换成十进制:

 

将二进制数字11010转换成十进制也是类似的道理:

 

小数部分

将八进制数字 423.5 转换成十进制:

 

将二进制数字 1010.101 转换成十进制:

 

十进制转换为二进制、八进制、十六

1) 整数部分

十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是:

  • 将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数;
  • 保留余数,用商继续除以 N,又得到一个新的商和余数;
  • 仍然保留余数,用商继续除以 N,还会得到一个新的商和余数;
  • ……
  • 如此反复进行,每次都保留余数,用商接着除以 N,直到商为 0 时为止

十进制数字 36926 转换成八进制的结果为 。十进制数字 42 转换成二进制的结果为 。

小数部分

十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法。具体做法是:

  • 用 N 乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;
  • 将积的整数部分取出,再用 N 乘以余下的小数部分,又得到一个新的积;
  • 再将积的整数部分取出,继续用 N 乘以余下的小数部分;
  • ……
  • 如此反复进行,每次都取出整数部分,用 N 接着乘以小数部分,直到积中的小数部分为 0,或者达到所要求的精度为止。

十进制小数 0.5 转换成八进制小数的结果为 0.7345

十进制java语言基础十进制小数 0.6875 转换成二进制小数的结果为 0.1011

前 17 个十进制整数与二进制、八进制、十六进制的对应关系:

十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 二进制 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 八进制 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F 10

注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数。请看下面的例子:

  • 十进制 0.51 对应的二进制为 0.000010111...,是一个循环小数;
  • 十进制 0.72 对应的二进制为 0.0011110...,是一个循环小数;
  • 十进制 0.625 对应的二进制为 0.101,是一个有限小数。

二进制和八进制、十六进制的转换

  1. 二进制整数和八进制整数之间的转换

二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。

二进制整数 转换为八进制的结果为 1674

八进制整数 2743 转换为二进制的结果为

  1. 二进制整数和十六进制整数之间的转换

二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。

二进制整数 10 1101 0101 1100 转换为十六进制的结果为 2D5C

十六进制整数 A5D6 转换为二进制的结果为 1010 0101 1101 0110

存储单位

内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。这些元器件,实际上就是电路;电路的电压会变化,要么是 0V,要么是 5V,只有这两种电压。5V 是通电,用1来表示,0V 是断电,用0来表示。所以,一个元器件有2种状态,0 或者 1。

一般情况下我们不一个一个的使用元器件,而是将8个元器件看做一个单位,即使表示很小的数,例如 1,也需要8个,也就是 00000001。

1个元器件称为1比特(Bit)或1位,8个元器件称为1字节(Byte),那么16个元器件就是2Byte,32个就是4Byte,以此类推:

  • 8×1024个元器件就是1024Byte,简写为1KB;
  • 8×1024×1024个元器件就是1024KB,简写为1MB;
  • 8×1024×1024×1024个元器件就是1024MB,简写为1GB。

单位换算:

  • 1Byte = 8 Bit
  • 1KB = 1024Byte = 210Byte
  • 1MB = 1024KB = 220Byte
  • 1GB = 1024MB = 230Byte
  • 1TB = 1024GB = 240Byte
  • 1PB = 1024TB = 250Byte
  • 1EB = 1024PB = 260Byte

虚拟内存

如果我们运行的程序较多,占用的空间就会超过内存(内存条)容量。例如计算机的内存容量为2G,却运行着10个程序,这10个程序共占用3G的空间,也就意味着需要从硬盘复制 3G 的数据到内存,这显然是不可能的。

操作系统(Operating System,简称 OS)为我们解决了这个问题:当程序运行需要的空间大于内存容量时,会将内存中暂时不用的数据再写回硬盘;需要这些数据时再从硬盘中读取,并将另外一部分不用的数据写入硬盘。这样,硬盘中就会有一部分空间用来存放内存中暂时不用的数据。这一部分空间就叫做虚拟内存(Virtual Memory)。

3G - 2G = 1G,上面的情况需要在硬盘上分配 1G 的虚拟内存。

ASCII 编码一览表

标准 ASCII 编码共收录了 128 个字符,其中包含了 33 个控制字符(具有某些特殊功能但是无法显示的字符)和 95 个可显示字符。

包含了基本的拉丁字母(英文字母)、阿拉伯数字(也就是 )、标点符号(等)、特殊符号(等)以及一些具有控制功能的字符(往往不会显示出来)。

ASCII码一览表 https://c.biancheng.net/c/ascii/

输入法

编写代码的时候必须使用英文半角输入法,尤其是标点符号,初学者一定要引起注意。

C语言程序的整体框架

 
  • 命令计算机输出字符串;
  • 是要输出的内容;
  • 表示语句结束。

版权声明


相关文章:

  • 陕西java基础培训2025-04-18 15:18:00
  • java基础练习课程2025-04-18 15:18:00
  • java基础函数定义2025-04-18 15:18:00
  • java 基础复习2025-04-18 15:18:00
  • .java 基础2025-04-18 15:18:00
  • Java集合基础面试2025-04-18 15:18:00
  • java面向对象程序设计基础2025-04-18 15:18:00
  • java基础整合2025-04-18 15:18:00
  • java基础算法讲解2025-04-18 15:18:00
  • java要英语基础2025-04-18 15:18:00