搞了这么久的程序,还是对进制和转化一知半解,曾也在这上面栽了几回,今天就狠下心好好研究下吧:
1. 二进制表示:
形如:0000 0001
每一位称为一个bit位,有多少个bit位,这个二进制数就有几位。如该数有8个bit位。
2. 数据类型与二进制位数:
1 个字节 有 8 个bit位 即: 1Byte = 8bit
1 个字 有 2 个字节 即: 1Word = 2Byte = 16bit
Java中的整数类型:
short 有 2个字节 即: 1short = 2Byte = 16bit
int 有 4个字节 即: 1int = 4Byte = 32bit
long 有 8个字节 即: 1long = 8Byte = 64bit
2'. 容量与二进制位数:
1KB = 1024 Byte = 1024 * 8 bit = 1024 个字 = 1024 short = 512 int = 256 long
3. 二进制与十进制的关系:
以一个short型(16bit)为例:
二进制:0001 0101 = 2^0 + 2^2 + 2^4 = 21 : 十进制
4. 二进制的负数表示:
对于每类型的数据,使用其bit位的最高位来表示符号,最高位为1表示负数,0为正数。如short的第8位,int的第32位,long的第64位。
以一个short型(16bit)为例:
十进制数:21 = 二进制数:0001 0101 --- 那么 -21如何表示?
先对21的二进制数取反 : 1110 1010
再+1 : 1110 1011 ----这就是-21.
对于一个一进制数 :1110 0111 ----这是一个负数,那它是负几呢?
可以使用上面方法的逆向方法,但也可以使用同样的方式(二进制就是这么巧妙)
取反 :0001 1000
再+1 :0001 1001 ----- 2^0 + 2^3 + 2^4 = 25, 所以原来的数为-25.
5. 数据类型的表示范围:
以short为例:
short共8bit,其中最高位(第8位)用来表示符号,所以
其正数范围为 0 ~ (2^0 + 2^1 + 2^2 + ... + 2^6) = 2^7 - 1。
也可以这样理解,用7个bit位来表示数值(第8位用来表示符号),排列可能数为 2^7,0为其中的一个可能,所以范转为 0 ~ 2^7-1 即 0 ~ 127
其负数范围为 -1 ~ - (2 ^ 7) 即 -1~-128
为什么不是-127呢,还是向上面一样理解,用7个bit位来表示数值(第8位用来表示符号),排列可能数为 2^7,但是与正数不同的是,这里不需要抽一种可能来表示0,而是直接从-1开始,共128种可能,即到-128.
所以总结为:short类型的数值范围为 -128 ~ 127,其中负数范围为 -128 ~ -1 (共128个数),正数范围为 0 ~ 127 (共128个数)
同理:
int : -(2^15) ~ 2^15 -1
long : -(2^63) ~ 2^63 -1
待续: java中的类型转换补位,纯二进制转换,二进制移位操作, java的二进制使用BitSet
分享到:
相关推荐
总之,理解和掌握二进制与十进制之间的转换是C#编程中的基本技能,尤其在处理计算机数据存储、网络通信、位操作等场景时更为关键。通过实践和学习,我们可以更好地驾驭这两种数字系统,从而提升我们的编程能力。
在数字系统中,二进制和十进制之间的转换是基本操作。二进制系统(Base-2)使用两个符号,0 和 1,来表示数值,而十进制系统(Base-10)使用十个符号,0 到 9。在计算机科学中,尤其是硬件描述语言(如 Verilog)中...
本文将详细介绍十进制转二进制的方法,并对二进制转十进制、八进制、十六进制的转换方法进行比较和分析。 一、十进制转二进制 十进制转二进制的算法是许多初学者头疼的问题,但实际上这是一种简单的除法算法。具体...
在计算机科学中,二进制、十进制和其他进制之间的转换是基本的数学操作,对于理解计算机如何处理数据至关重要。二进制系统(Binary)是计算机内部的基础,使用0和1来表示所有数据和指令。而十进制是我们日常生活中最...
c++实现二进制转为十进制案例,简单易行,仅供参考
在提供的压缩包文件"易语言置入汇编实现二进制十进制互转源码"中,应该包含了具体的易语言源代码和汇编代码示例,可以详细研究其结构和实现细节。通过学习和理解这些代码,你可以更好地掌握二进制和十进制转换的原理...
c++ 二进制转换十进制 double power(double x,int n) { double v=1; while(n--) { v=v*x; } return v; }
《Multisim八位二进制转三位十进制——深入理解数字电路设计与仿真》 在电子工程和计算机科学领域,数据的表示和转换是基础且关键的一部分。本篇文章将详细探讨如何利用Multisim软件进行八位二进制到三位十进制的...
十进制转化为二进制格雷码是计算机科学中的一种基本操作,该操作广泛应用于计算机科学和通信 engineering 中。通过 Matlab 小程序的实现,我们可以更好地理解十进制、二二进制和格雷码之间的关系,并掌握转化十进制...
本篇文章将详细探讨“IP地址转化算法:二进制转十进制”的原理与实现。 一、IP地址结构 IP地址(Internet Protocol Address)由四部分构成,每部分由一个8位的二进制数组成,称为“字节”或“octet”。在点分十进制...
//十进制转二进制字符串 Console.WriteLine(Convert.ToString(d,2)); //输出: 1010 //十进制转十六进制字符串 Console.WriteLine(Convert.ToString(d,16)); //输出: a //二进制字符串转十进制数 string bin = "1010...
这个“十进制与浮点数相互转化工具”可能是基于上述原理编写的一个小程序,它可以方便地在MIPS环境下进行十进制和浮点数的互相转换,这对于编程、调试或理解浮点运算的底层机制非常有用。在使用过程中,用户只需输入...
在MATLAB中,进行十进制与二进制之间的转换是非常常见的操作,特别是在数字信号处理、计算机编程和算法设计等领域。MATLAB提供了内置函数来轻松完成这些转换。本篇文章将详细探讨如何使用MATLAB实现十进制到二进制...
标题中的“Stack练习:: 十进制正整数转化成二进制”表明这是一个关于编程技术的话题,特别是涉及数字系统转换,即从十进制数转换到二进制数。在计算机科学中,理解不同进制间的转换是基础且重要的技能,尤其是在处理...
如果我们⽤⼗进制去表⽰种群中的个体,并且如果设定种群规模为10个个体,那么很简单,只要在-3.0到12.1这个区间随机选择10个⾮重复的...遗传算法十进制转为二进制matlab代码,该段代码适合初学遗传算法的小白进行学习
在计算机科学中,数字的表示方式至关重要,其中最常用的是十进制和二进制系统。十进制是我们日常生活中普遍采用的计数系统,而二进制则是计算机内部处理数据的基础。本篇文章将深入探讨如何使用C++编程语言将十进制...
将十进制数转化为7位二进制数的matlab M文件
实现二进制与十进制的转化 我们大三的实验
转换过程涉及到位操作、二进制到十进制转换、指数调整等概念,这些都是理解和处理二进制浮点数时的基础知识。在实际编程中,理解这种转换方式对于解析二进制数据流或理解底层计算机制非常重要。通过熟悉这些概念,...
该资源主要解决进制转换问题, /*十二进制转化为十进制*/