搜档网
当前位置:搜档网 › [JAVA]二进制,八进制,十六进制,十进制间进行相互转换

[JAVA]二进制,八进制,十六进制,十进制间进行相互转换

[JAVA]二进制,八进制,十六进制,十进制间进行相互转换
[JAVA]二进制,八进制,十六进制,十进制间进行相互转换

[JAVA]二进制,八进制,十六进制,十进制间进行相互转换十进制转成十六进制:

Integer.toHexString(int i)

十进制转成八进制

Integer.toOctalString(int i)

十进制转成二进制

Integer.toBinaryString(int i)

十六进制转成十进制

Integer.valueOf("FFFF",16).toString()

八进制转成十进制

Integer.valueOf("876",8).toString()

二进制转十进制

Integer.valueOf("0101",2).toString()

有什么方法可以直接将2,8,16进制直接转换为10进制的吗?

https://www.sodocs.net/doc/4f10548831.html,ng.Integer类

parseInt(String s, int radix)

使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

examples from jdk:

parseInt("0", 10) returns 0

parseInt("473", 10) returns 473

parseInt("-0", 10) returns 0

parseInt("-FF", 16) returns -255

parseInt("1100110", 2) returns 102

parseInt("2147483647", 10) returns 2147483647

parseInt("-2147483648", 10) returns -2147483648

parseInt("2147483648", 10) throws a NumberFormatException parseInt("99",throws a NumberFormatException

parseInt("Kona", 10) throws a NumberFormatException parseInt("Kona", 27) returns 411787

进制转换如何写(二,八,十六)不用算法

Integer.toBinaryString

Integer.toOctalString

Integer.toHexString

例二

public class Test{

public static void main(String args[]){

int i=100;

String binStr=Integer.toBinaryString(i);

String otcStr=Integer.toOctalString(i);

String hexStr=Integer.toHexString(i);

System.out.println(binStr);

}

例二

public class TestStringFormat {

public static void main(String[] args) {

if (args.length == 0) {

System.out.println("usage: java TestStringFormat "); System.exit(0);

}

Integer factor = Integer.valueOf(args[0]);

String s;

s = String.format("%d", factor);

System.out.println(s);

s = String.format("%x", factor);

System.out.println(s);

s = String.format("%o", factor);

System.out.println(s);

}

}

其他方法:

Integer.toHexString(你的10进制数);

例如

String temp = Integer.toHexString(75);

输出temp就为4b

//输入一个10进制数字并把它转换成16进制import java.io.*;

public class toHex{

public static void main(String[]args){

int input;//存放输入数据

//创建输入字符串的实例

BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));

System.out.println("请输入一个的整数:");

String x=null;

try{

x=strin.readLine();

}catch(IOException ex){

ex.printStackTrace();

}

input=Integer.parseInt(x);

System.out.println ("你输入的数字是:"+input);//输出从键盘接收到的数字

System.out.println ("它的16进制是:"+Integer.toHexString(input));//用toHexString把10进制转换成16进制

}

}

二进制十进制八进制十六进制转换练习题

数制及相互转换 一、单选题 1、下列数据中数值最小的是 A、01110000B B、249D C、125Q D、AAH 2、下列数据中数值最大的是 A、3FH B、64D C、77Q D、111110B 3、下列数据中数值最大的是 A、100H B、100D C、100Q D、100B 4、十进制数24转换成二进制数是 A、11100 B、11010 C、11000 D、10100 5、下列数据中数值最小的是 A、11110000(二进制) B、249(十进制) C、274(八进制) D、FA(十六进制) 6、下列数据中数值最大的是 A、11101101(二进制) B、235(十进制) C、351(八进制) D、EE(十六进制) 7、下列各数中最大的是 A、11010110B B、D7 H C、214D D、325Q 8、与二进制数100101等值的十进制数是 A、34 B、35 C、36 D、37 9、与十进制数256等值的二进制数是 A、1000000 B、10000000 C、100000000 D、1000000000 10、与十六进制数ACE等值的十进制数是 A、2766 B、2765 C、2764 D、2763 11、十六进制数111与八进制数111之和,用八进制数表示为 A、310 B、1222 C、1000 D、532 12、按某种进制运算2 × 4=12,那么4 × 5为 A、20 B、32 C、24 D、12 13、若216是某种数制的一个数,它的值与十六进制数8E相等,则该数是()进制数。 A、六 B、八 C、九 D、十 14、下列各数中,属于合法的五进制数的是 A、216 B、123 C、354 D、189 15、下列无符号十进制中,能用8位二进制表示的是 A、257 B、288 C、256 D、255 16、无符号二进制数后加上一个0,形成的数是原来的几倍? A、1 B、2 C、1/2 D、4 17、下列数据中数值最大的是 A、(10000)2 B、(17)8 C、(17)10 D、(10)16 18、某学校有1500名学生,若用二进制来编学号,需要多少位来表示。 A、10 B、11 C、12 D、13

十进制数与十六进制数的转换方法

一,十进制转换十六进制 若十进制数23785转为十六进制,则用 23785/16=1486余9, 1486/16=92余……14, 92/16=5余………….12, 5/16=0余……………..5,十六进制中,10对应为a、11对应为b、。。。。。。、15对应为f,再将余数倒写为5ce9,则十进制23785=十六进制5ce9 二,十六进制转换十进制 十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方…… 所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于15,即:F)表示的大小为X * 16的N次方。 假设有一个十六进数2AF5, 那么如何换算成10进制呢? 用竖式计算:2AF5换算成10进制: 第0位:5 * 16^0 = 5 第1位:F * 16^1 = 240 第2位:A * 16^2 = 2560 第3位:2 * 16^3 = 8192 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 三,二进制的1101转化成十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化成十进制要从右到左用二进制的每个数去乘以2的相应次方不过次方要从0开始 十进制转二进制:用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果例如302 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 1/2 = 0 余1 故二进制为100101110 四,二进制转八进制 在把二进制数转换为八进制表示形式时,对每三位二进制位进行分组,应该从小数点所在位置分别向左向右划分,若整数部分倍数不是3的倍数,可以在最高位前面补若干个0;对小数部分,当其位数不是的倍数时,在最低位后补若干个0.然后从左到右把每组的八进制码依次写出,即得转换结果. 你算一下就知道了啊比如110=2^2+2+0=6 五,二进制转十六进制 要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,分的不够的前边补零,用四位数的二进制数来代表一个16进制。转换表如下,括号内为十六进制 0000(0)0001(1)0010(2)0011(3)0100(4)0101(5) 0110(6)0111(7)1000(8)1001(9)1010(A)1011(B) 1100(C)1101(D)1110(E)1111(F) 例如:10101011划分为1010 1011,根据转换表十六进制为AB

java 十进制数转换为二进制,八进制,十六进制数的算法

java ê?????êy×a???a?t????,°?????,ê?áù????êyμ???·¨ using System; using System.Collections.Generic; using https://www.sodocs.net/doc/4f10548831.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace ExDtoB { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //ê?????×a?t?? public string DtoB(int d) { string b = ""; //?D????êyè?1?D?óú2£??ò?±?óê?3? if (d < 2) { b = d.ToString(); } else { int c; int s = 0; int n = d; while (n >= 2) { s++; n = n / 2; } int[] m = new int[s]; int i = 0; do

{ c = d / 2; m[i++] = d % 2; d = c; } while (c >= 2); b = d.ToString(); for (int j = m.Length - 1; j >=0; j--) { b += m[j].ToString (); } } return b; } //ê?????×a°????? public string DtoO(int d) { string o = ""; if (d < 8) { o = d.ToString(); } else { int c; int s=0; int n=d; int temp = d; while (n >= 8) { s++; n = n / 8; } int[] m = new int[s]; int i = 0; do { c = d / 8; m[i++] = d % 8; d = c; } while (c >= 8); o = d.ToString();

二进制、十进制和十六进制及其相互转换的公式

计算机内部是以二进制形式表示数据和进行运算的;计算机内的地址等信号常用十六进制来表示,而人们日常又习惯用十进制来表示数据。这样要表示一个数据就要选择一个适当的数字符号来规定其组合规律,也就是要确定所选用的进位计数制。各种进位制都有一个基本特征数,称为进位制的“基数”。基数表示了进位制所具有的数字符号的个数及进位的规律。下面就以常用的十进制、二进制、八进制和十六进制为例,分别进行叙述。 一.常用的三种计数制 1.十进制(Decimal) 十进制的基数是10,它有10个不同的数字符号,即0、1、2、3、…、9。它的计数规律是“逢十进一”或“借一当十”。处在不同位置的数字符号具有不同的意义,或者说有着不同的“权”。所谓的“权”就是每一位对其基数具有不同的倍数。例如,一个十进制数为 123.45=1×102十2×101十3×100十4×10-1十5×10-2 等号左边为并列表示法.等号右边为多项式表示法,显然这两种表示法表示的数是等价的。 在右边多项式表示法中,1、2、3、4、5被称为系数项,而102、101、100、10-1、10-2等被称为该位的“权”。 一般来说,任何一个十进制数”都可以采用并列表不法表不如下: N10=dn-1d n-2…d1d 0. d-1d-2…d-m 其中,下标n表示整数部分的位数,下标m表示小数部分的位数,d是0~9中的某一个数,即di∈(0,1,…,9)。同样,任意一个十进制数N都可以用多项式表示法表示如下: N10=dn-1×10n-1十…十d1×101十d 0×100十d-1×10-1十…十 d-m×10-m 其中,m、n为正整数,di表示第i位的系数,10i称为该位的权。所以某一位数的大小是由各系数项和其权值的乘积所决定的。 2.二进制(Binary) 二进制的基数是2,它只有两个数字符号,即0和1。计算规律是“逢二进一”或“借一当二”。例如:(101.01)2=1×23十1×22十0×21十1×20十0×2-1十1×2-2 任何一个二进制数N都可以用其多项式来表示: N2=dn-1×2n-1十dn-2×2n-2十…十d1×21十d 0×20十d-1×2-1十d-2×2-2十…十d-m×2-m 式中任何一位数值的大小都可以用该位的系数项di和权值2i的积来确定。 3.十六进制(Hexadecimal) 十六进制的基数为16,它有16个数字符号、即0~9、A~F。其中A、B、C、D、E、F分别代表十进制数的10、11、12、13、14、15。各位之间“逢十六进一”或者“借一当十六”。各位的权值为16i。例如:(2C7.1F)16=2×162十12×161十7×160十1×16-1十15×16-2 二.3种计数制之间的相互转换 对于同一个数,可以采用不同的计数制来表示,其形式也不同。如: (11)10=(1011)2=(B)16 1.R进制转换成十进制的方法 具体的方法是先将其并列形式的数写成其多项式表示形式,然后,经计算后就可得到其十进制的结果。这种方法披称为按权展开法。对于一个任意的R进制数N都可以写成如下形式: N=dn-1 dn-2…d1 d0d -1d-2…d-m =dn-1×Rn-1十…十d1×R1十d 0×R0十d-1×R-1十…十d-m×R-m 其中,R为进位基数,Ri是对应位的权值,di为系数项,特此式求和计算之后,即可以完成R进制数对十进制数的转换。 例如,写出(1101.01)2、(10D)16的十进制数。 (1101.01)2=1×23十1×22十0×21十1×20十0×2-1十0×2-2,

二进制与十进制的转换(教案)

二进制与十进制的转换教案 【教学目的与要求】 1、熟悉数制的概念; 2、掌握位权表示法; 3、熟练掌握二进制与十进制之间的转换方法。 【课时安排】1课时。 【教学重点与难点】 1、难点:位权表示法十进制转化为二进制 2、重点:二、十进制间相互转换 【教学过程】(以下教师的语言、活动简称“师”,学生的活动简称“生”) (一)新课导入 生:加减乘除 师:对,我们最开始学习的就是十以内的加法,之后是两位数的加法,在两位数加法的学习中,老师是不是经常会说,要注意逢十进一?也就是我们平常说的别忘了进位。 (PPT展示)像这样按进位的原则进行记数的方法叫做进位记数制。“进位记数制”简称为“数制”或“进制”。我们平时用的最多的就是十进制了 那么,大家再想一下,还有没有其他的进制呢?比如:小时、分钟、秒之间是怎么换算的?生:1小时=60分钟1分钟=60秒 师:那我们平时会不会说我做这件事用了90分钟呢?不是吧,我们一般会说,用了一个半小时,也就是说:逢60进一,这就是60进制。 (PPT展示)由此可以推断出:每一种数制的进位都遵循一个规则,那就是——逢N进1。这里的N叫做基数。所谓“基数”就是数制中表示数值所需要的数字字符的总数,比如,十进制中用0——9来表示数值,一共有10个不同的字符,那么,10就是十进制的基数,表示逢十进一。 师:下面我们再引入一个新概念——“位权”,什么是位权呢?(PPT展示)大家看一一这个十进制数:1111.111,这7个1是不是完全一样的呢?有什么不同呢?第一个1表示1000,第二个1表示100,……

那么,这个“若干次”是多少呢?有没有什么规定呢?大家观察一下这个例子,以小数点为界,整数部分自右向左,依次是基数的0次、1次、2次、3次幂。小数部分,自左向右,分别是基数的-1次、-2次、-3次幂。 大家再看一下:2856.42这个十进制数,它的值是怎么算出来的呢? 这就叫做按权相加法。也就是让每一位上的数字字符乘以它所代表的权。那么,这种方法有什么用呢?这就是本节课的重点内容。 (二)数制转换 大家都知道,计算机运算时采用的是二进制,但人们在使用计算机解决实际问题时通常使用十进制,这就有一个十进制向二进制转换或由二进制向十进制转换的过程。 也就是说,在使用计算机进行数据处理时首先必须把输入的十进制数转换成计算机所能接受的二进制数;计算机在运行结束后,再把二进制数转换为人们所习惯的十进制数输出。这种将数由一种数制转换成另一种数制称为数制间的转换。 二进制的特点:只有二个不同的数字符号:0和1;逢二进1 1)二进制转十进制

高中信息技术基础进制转换二进制十进制十六进制转换转化

2进制数转换为10进制 (110)2转化为十进制 10进制整理转换成2进制 于是,结果是余数的倒排列,即为: (37)10=(a5a4a3a2a1a0)2=(100101)2 16进制转化成2进制、2进制转化成16进制 (二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。) 16进制转化成2进制:每一位十六进制数对应二进制的四位,逐位展开。 二进制数转为十六进制:将二进制数转换成十六进制数是将二进数的整数部分从右向左每四位一组,每一组为一位十六进制整数,不足四位时,在前面补0 (FB)16=(1111 ,1011)2 互转

2进制与16进制的关系: 2进制0000 0001 0010 0011 0100 0101 0110 0111 16进制0 1 2 3 4 5 6 7 2进制1000 1001 1010 1011 1100 1101 1110 1111 16进制8 9 A B C D E F 可以用四位数的二进制数来代表一个16进制,如3A16 转为二进制为: 3为0011,A 为1010,合并起来为00111010。可以将最左边的0去掉得1110102 右要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,将各单位对照出16进制的值即可。 16进制数转换为10进制数 假设有一个十六进数 2AF5, 那么如何换算成10进制呢? 用竖式计算: 2AF5换算成10进制: 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 (别忘了,在上面的计算中,A表示10,而F表示15) 假设有人问你,十进数 1234 为什么是一千二百三十四? 你尽可以给他这么一个算式: 1234 = 1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0 如十进制数2039 它可以表示为:2*10^3+0*10^2+3*10^1+9*10^0

十进制和二进制相互转化程序的设计书

十进制和二进制相互转化 程序设计书 需求分析 随着技术的不断提高,进制转换向着简单化,规模化发展,而对于只能识别二进制0和1码的计算机来说,如何翻译成人类可以认识和编译的语言,和安全加密等给信息管理有关的信息随之增加。在这种情况下单靠人工来处理这些信息不但显得大不从心,而且极容易出错。因此,需要开发二进制与十进制互换系统,该系统可以实现由计算机代替人工执行一系列复杂而繁琐的操作,使得办公人员可以轻松快捷的完成进制转换的任务。 总结系统需求分为大体分为5个模块: 首先第一个需要数据的信息输入,即输入数据的基本信息包括输入的进制选项,所输入的二进制位数,所输入的二进制数,所输入的十进制数和判断是否全1或全0五个模块。 第二个需求是判断数据进制选项信息,在信息和科技不断进步的今天,数据及时准确的更新成了任何一个系统的首要任务,本系统应时代所需设计了数制信息功能,包括对包括数据的进制,二进制数据的位数,十进制数据,进行进制转换计算。 第三个需求是所输入的二进制数据,数据的运行使用主要是解决向十进制转换 第四个需求是所输入的十进制数据,数据运行使用主要是解决向二进制转换。 第五个需求是打印退出,在对系统进行操作后,退出系统。

1.1 数据需求分析 本系统的主要数据进制转换的实现。转换包括:二进制数向十进制数转换,十进制数向二进制数转换,判断是否为全0或全1,是否继续执行等。 1.2功能需求分析 本程序功能为二进制和十进制的相互转换,二进制转十进制主要根据进制转换的根本方法,分别乘以2的次方得到十进制数;十进制转二进制主要根据“除2取余法”得到二进制数。另外,本程序简单易懂,操作简便,给出引导说明,以及还出错处理,只需按照提示输入即可用。 本系统主要实现对二进制与十进制之间互换,需要实现以下几个方面的功能: (1)二进制转十进制:选择二进制向十进制转换,选择二进制位数,输入二进制数,进行数制转换,输出结果,判断是否继续。 (2)十进制转二进制:选择十进制向二进制转换,输入十进制数,进行数制转换,输出结果,判断是否继续。 2系统总体设计 2.1系统模块划分 本系统主要是对二进制与十进制互换的管理,包括了二进制转十进制、十进

ASCII码表二进制十进制十六进制

A S C I I码表(二进制十进制十六进制) 控制字符 二进制十进制十六进制缩写解释 00000000 0 0 NUL 空字符(Null) 00000001 1 1 SOH 标题开始 00000010 2 2 STX 正文开始 00000011 3 3 ETX 正文结束 00000100 4 4 EOT 传输结束 00000101 5 5 ENQ 请求 00000110 6 6 ACK 收到通知 00000111 7 7 BEL 响铃 00001000 8 8 BS 退格 00001001 9 9 HT 水平制表符 00001010 10 0A LF 换行键 00001011 11 0B VT 垂直制表符 00001100 12 0C FF 换页键 00001101 13 0D CR 回车键 00001110 14 0E SO 不用切换 00001111 15 0F SI 启用切换 00010000 16 10 DLE 数据链路转义 00010001 17 11 DC1 设备控制1 00010010 18 12 DC2 设备控制2 00010011 19 13 DC3 设备控制3 00010100 20 14 DC4 设备控制4 00010101 21 15 NAK 拒绝接收 00010110 22 16 SYN 同步空闲 00010111 23 17 ETB 传输块结束 00011000 24 18 CAN 取消 00011001 25 19 EM 介质中断 00011010 26 1A SUB 替补

00011011 27 1B ESC 溢出00011100 28 1C FS 文件分割符00011101 29 1D GS 分组符00011110 30 1E RS 记录分离符00011111 31 1F US 单元分隔符01111111 127 7F DEL 删除 可显示字符 二进制十进制十六进制字符 00100000 32 20 空格00100001 33 21 ! 00100010 34 22 " 00100011 35 23 # 00100100 36 24 $ 00100101 37 25 % 00100110 38 26 & 00100111 39 27 ' 00101000 40 28 ( 00101001 41 29 ) 00101010 42 2A * 00101011 43 2B + 00101100 44 2C , 00101101 45 2D - 00101110 46 2E . 00101111 47 2F / 00110000 48 30 0 00110001 49 31 1 00110010 50 32 2 00110011 51 33 3 00110100 52 34 4 00110101 53 35 5 00110110 54 36 6 00110111 55 37 7 00111000 56 38 8 00111001 57 39 9 00111010 58 3A :

二进制与十进制相互转化

课题实验课设计与实施过程的研究报告 --《二进制与十进制相互转化》设计与实施 理化组:杨婧娟 一、课题自然情况摘要: 1、课题总名称: 《农村高中教学效能提高的研究》(哈尔滨市教育学会一般课题) 2、课题研究简介: 《农村高中教学效能提高的研究》是市教育学会一般课题,本课题主要研究 的是高中阶段如何提高教学有效性,挖掘学生的学习潜能,激发学生学习热情。 不断改进教育教学方法,运用先进的教育技术、教学设备和教学手段,优化课堂教学,充分利用上课时间,激发学生强烈的求知欲望,提高课堂效能。 3、进展情况: 本课题已经在我校各个学科进行具体的实施,已经取得了较好的效果,总结了很多有价值的经验,并应用于教学,效果较好,在实施的过程中,不断丰富研 究内涵,实现了理论与实际相结合,达到了在实践中总结经验,经验为教学服务的良好循环。 4、研究者在本课题中的角色 本人参与本课题的研究工作。在课堂教学中尝试不同的方法,培养和激发学生学习兴趣,提高效能。取得较好效果。 5、研究策略和研究方法: 根据电子技术基础课的特点和学生的基本情况,在教学过程中,将明确学生学习目的,利用先进的技术手段参与教学,从培养师生情感和利用所学知识为其他学科服务,以及为生活服务等方面培养学生的学习兴趣,提高课堂教学效能。 实现课内与课外相结合,理论与实践相结合,传统教学与现代化教学相结合的教学方法。 二、本次实验研究目标及所采用的的观察方式: (一)作用 电子技术基础课教学与其它学科教学不同,枯燥乏味是电子技术基础课的特点。本节课教师在讲授过程中,利用多媒体软件,直观的展现教学内容,是枯燥

的数学课堂变得生动有趣,学生在不知不觉中参与到教学过程中,模仿学习,完成学习任务。 本课是教学方法和教学方式两方面进行研究,结合本科教学特点而进行,在整个课题研究过程中具有重要意义。在本课教学中,着重培养学生学习本科知识并为学习其他学科和解决生活实际,提高学生学习积极性,提高学习质量。 (二)目标 根据学生的学习情况,对本课知识的掌握层次既定目标如下: 1、理解并掌握二进制转化为十进制的方法。 2、理解并掌握十进制转化为二进制的方法。 3. 通过教学,养成学生认真学习的习惯,提高学生的思维能力。 利用多媒体教学培养学生学习兴趣,提高课堂教学效能。 三、实验研究过程: 1.学情分析 本班是职高一年级学生,学生的学习积极性很高,但学生的基础参差不齐,思维反应不灵敏。 2.教材分析 本节课要研究的《二进制与十进制相互转化》是职业高中电子技术基础数字电路中的。《二进制与十进制相互转化》是数字电路基础中的重要内容,是 数制的基础。在教学中起承上启下的作用。因此,学好了本节课的内容,既是对 数制的理解,又能为后面学习提供方法。 本节重点是二进制与十进制的相互转化 本节难点是数制转化的方法 3.学习内容分析 本节课不仅是电子技术基础中的重点,还是计算机中的重点,所以学生应该理解掌握本节内容。 4 .教学方法分析 教学中“以学生为主体,以教师为主导,以问题解决为目的,以能力发展为 目标。”的指导思想,结合学生实际,以“问题导引自主探究”式教学方法,并 结合多媒体教学。 5、学习方法分析

二进制,八进制,十进制,十六进制之间的转换

二进制,八进制,十进制,十六进制之间的转换 1.什么是二进制 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。 信息的存储单位 位(Bit) :度量数据的最小单位 字节(Byte):最常用的基本单位,一个字节有8位 b7 b6 b5 b4 b3 b2 b1 b0 1 0 0 1 0 1 0 1 =27+24+22+20=149 K字节1k=1024 byte M(兆)字节 1M=1024K G(吉)字节 1G=1024M T(太)字节 1T=1024G 曾经听人说,一个c,c++大神,就靠输入,0和1就可以装好操作系统,不知道是不是真的,嘿嘿 2.十进制转换

1234[10进制] 0 1 2 3 4 5 6 7 8 9 0 当数位上的值超过9就要进1 1000+200+30+4=1*103+2*102+3*101+4*100=1234 1011[2进制] 0 1 当数位上的值超过1就要进1 1*23+0*22+1*21+1*20=8+0+2+1=11 1011[8进制]0 1 2 3 4 5 6 7 当数位上的值超过7就要进1 1*83+1*81+1*80=512+8+1=521 1011[16进制]0 1 2 3 4 5 6 7 8 9 A B C D E F 当数位上的值超过15就要进1 1*163+1*161+1*160=4096+16+1=4113 当然其他进制转换成10进制是最简单的了,我想聪明的你肯定会了。

十进制与二进制之间互换

十进制与二进制之间互换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除以2取余数法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0。 第二步,将商84除以2,商42余数为0。 第三步,将商42除以2,商21余数为0。 第四步,将商21除以2,商10余数为1。 第五步,将商10除以2,商5余数为0。 第六步,将商5除以2,商2余数为1。 第七步,将商2除以2,商1余数为0。 第八步,将商1除以2,商0余数为1。 第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000 例2、正整数的十进制转换二进制: 要点:除二取余,倒序排列 解释:将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为二进制数的结果 例如把52换算成二进制数,计算结果如图: 52除以2得到的余数依次为:0、0、1、0、1、1,倒序排列,所以52对应的二进制数就是110100。 由于计算机内部表示数的字节单位都是定长的,以2的幂次展开,或者8位,或者16位,或者32位....。 于是,一个二进制数用计算机表示时,位数不足2的幂次时,高位上要补足若干个0。本文都以8位为例。那么: (52)10=(00110100)2 二、负整数转换为二进制 要点:取反加一 解释:将该负整数对应的正整数先转换成二进制,然后对其“取补”,再对取补后的结果加1即可 例如要把-52换算成二进制: 1.先取得52的二进制:00110100 2.对所得到的二进制数取反:11001011 3.将取反后的数值加一即可:11001100 即:(-52)10=(11001100)2 三、小数转换为二进制 要点:乘二取整,正序排列 解释:对被转换的小数乘以2,取其整数部分(0或1)作为二进制小数部分,取其小数部分,再乘以2,又取其整数部分作为二进制小数部分,然后取小数部分,再乘以2,直到小数部分为0或者已经去到了足够位数。每次取的整数部分,按先后次序排列,就构成了二进制小数的序列 例如把0.2转换为二进制,转换过程如图: 0.2乘以2,取整后小数部分再乘以2,运算4次后得到的整数部分依次为0、0、1、1,结果又变成了0.2, 若果0.2再乘以2后会循环刚开始的4次运算,所以0.2转换二进制后将是0011的循环,即: (0.2)10=(0.0011 0011 0011 .....)2 循环的书写方法为在循环序列的第一位和最后一位分别下加一个点以示标注

十进制数转换成二进制

一、十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ①整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0。 第二步,将商84除以2,商42余数为0。 第三步,将商42除以2,商21余数为0。 第四步,将商21除以2,商10余数为1。 第五步,将商10除以2,商5余数为0。 第六步,将商5除以2,商2余数为1。 第七步,将商2除以2,商1余数为0。 第八步,将商1除以2,商0余数为1。 第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000 (2)小数部分 方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分 为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例: 例1:将0.125换算为二进制 得出结果:将0.125换算为二进制(0.001)2 分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25; 第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5; 第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0; 第四步,读数,从第一位读起,读到最后一位,即为0.001。 例2,将0.45转换为二进制(保留到小数点第四位) 大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。这个也是计算机在转换中会产生误差,但是由于保留位数很多,精度很高,所以可以忽略不计。 那么,我们可以得出结果将0.45转换为二进制约等于0.0111

二进制十进制八进制十六进制转换练习题

数制及相互转换 进制表示形式R代表任意进制 二进制 B R→十:按权展开求和二→八:三位变一位 八进制O (Q) 十→R:除R 取余倒排二→十六:四位变一位 十进制 D 八→二:一位变三位 十六进制H 十六→二:一位变四位 一、单选题 1、下列数据中数值最小的是 A、01110000B B、249D C、125Q D、AAH 2、下列数据中数值最大的是 A、3FH B、64D C、77Q D、111110B 3、下列数据中数值最大的是 A、100H B、100D C、100Q D、100B 4、十进制数24 转换成二进制数是 A、11100 B、11010 C、11000 D、10100 5、下列数据中数值最小的是 A、11110000(二进制) B、249(十进制) C、274(八进制) D、FA(十六进制) 6、下列数据中数值最大的是 A、11101101(二进制) B、235(十进制) C、351(八进制) D、EE(十六进制) 7、下列各数中最大的是 A、11010110B B、D7 H C、214D D、325Q 8、与二进制数100101 等值的十进制数是 A、34 B、35 C、36 D、37 9、与十进制数256 等值的二进制数是 A、1000000 B、10000000 C、100000000 D、1000000000 10、与十六进制数ACE等值的十进制数是 A、2766 B、2765 C、2764 D、2763 11、十六进制数111 与八进制数111 之和,用八进制数表示为 A、310 B、1222 C、1000 D、532 12、按某种进制运算 2 ×4=1,2那么 4 ×为5 A、20 B、32 C、24 D、12 13、若216 是某种数制的一个数,它的值与十六进制数8E 相等,则该数是()进制数。 A、六 B、八 C、九 D、十 14、下列各数中,属于合法的五进制数的是 A、216 B、123 C、354 D、189 15、下列无符号十进制中,能用8 位二进制表示的是 A、257 B、288 C、256 D、255 16、无符号二进制数后加上一个0,形成的数是原来的几倍? A、 1 B、 2 C、1/2 D、4 17、下列数据中数值最大的是 A、(10000)2 B、(17)8 C、(17)10 D、(10)16 18、某学校有1500 名学生,若用二进制来编学号,需要多少位来表示。 A、10 B、11 C、12 D、13

二进制与十进制数间的转换二进制数的四则运算

一、二进制数与十进制数间的转换方法 1、正整数的十进制转换二进制: 要点:除二取余,倒序排列 解释:将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒 取将除得的余数,即换算为二进制数的结果 例如把52换算成二进制数,计算结果如图: 52除以2得到的余数依次为:0、0、1、0、1、1,倒序排列,所以52对应的二进制数就是 110100。 由于计算机内部表示数的字节单位都是定长的,以2的幂次展开,或者8位,或者16位, 或者32位....。 于是,一个二进制数用计算机表示时,位数不足2的幂次时,高位上要补足若干个0。本文 都以8位为例。那么: (52)10=(00110100)2 2、负整数转换为二进制 要点:取反加一 解释:将该负整数对应的正整数先转换成二进制,然后对其“取补”,再对取补后的结果加1 即可

例如要把-52换算成二进制: 1.先取得52的二进制:00110100 2.对所得到的二进制数取反:11001011 3.将取反后的数值加一即可:11001100 即:(-52)10=(11001100)2 3、小数转换为二进制 要点:乘二取整,正序排列 解释:对被转换的小数乘以2,取其整数部分(0或1)作为二进制小数部分,取其小数部分,再乘以2,又取其整数部分作为二进制小数部分,然后取小数部分,再乘以2,直到小数部分为0或者已经去到了足够位数。每次取的整数部分,按先后次序排列,就构成了二进制小 数的序列 例如把0.2转换为二进制,转换过程如图: 0.2乘以2,取整后小数部分再乘以2,运算4次后得到的整数部分依次为0、0、1、1,结 果又变成了0.2, 若果0.2再乘以2后会循环刚开始的4次运算,所以0.2转换二进制后将是0011的循环,即: (0.2)10=(0.0011 0011 0011 .....)2 循环的书写方法为在循环序列的第一位和最后一位分别加一个点标注

二进制、八进制、十进制和十六进制关系

二进制、八进制、十进制和十六进制关系 为什么需要八进制和十六进制? 由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。但二进制数太长了。面对太长的数进行思考或操作,没有人会喜欢。 用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢? 因为2、8、16,分别是2的1次方、3次方、4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。 1234=1*10+2*10+3*10+4*10 32=1*2+0*2+0*2+0*2+0*2+0*2可以看出,所有进制换算成10进制,关键在于三个因素:进制基数、权位和权值。 如何将二、八、十六进制数转换为十进制数。 (一)二进制数转换成十进制数 由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,从最后一位开始算,依次列为第0、1、2...n位,第n位的数(0或1)乘以基数2的n次方,然后按十进制加法规则求和,得到的结果就是答案。这种做法称为"按权相加"法。 例1:(01100100)2=(100)10 计算过程:0*20+0*21+1*22+1*23+0*24+1*25+1*26+0*27= 0乘以多少都是0,所以也可直接跳过值为0的位:1*22+1*23+1*25+1*26=100 例2:(1011.01)2=(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10=(8+0+2+1+0+0.25)10=(11.25)10例3:(101.101)2=(5.625)10 (二)8进制数转换为10进制数,也按"按权相加"法,只将基数换成8即可。 例:(1507)8=(839)10 计算过程:1*83+5*82+0*81+7*80=839 (三)16进制数转换成10进制数,也按"按权相加"法,只将基数换成16即可。 例:(2AF5)16=(10997)10, 计算过程:2*163+A*162+F*161+5*160=10997(A表示10,F表示15) 附表1十进制与二进制、八进制、十六进制关系表

十进制转二进制

十进制转二进制(整数及小数部分): 1、把该十进制数,用二因式分解,取余。 以235为例,转为二进制 235除以2得117,余1 117除以2得58,余1 58除以2得29,余0 29除以2得14,余1 14除以2得7,余0 7除以2得3,余1 3除以2得1,余1 从得到的1开始写起,余数倒排,加在它后面,就可得11101011。 2、把十进制中的小数部份,转为二进制。 把该小数不断乘2,取整,直至没有小数为止,注意不是所有小数都能转为二进制! 以0.75为例, 0.75剩以2得1.50,取整数1 0.50剩以2得1,取整数1,顺序取数就可得0.11。 1、二进制数、八进制数、十六进制数转十进制数 有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。个位,N=1;十位,N=2...举例: 110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D 110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D 110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D 2、十进制数转二进制数、八进制数、十六进制数 方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。

3、二进制数转换成其它数据类型 3-1二进制转八进制: 从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足, 就是一个相应八进制数的表示。 010110.001100B=26.14Q 八进制转二进制反之则可。 3-2二进制转十进制: 见1 3-3二进制转十六进制: 从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示, 不足四位的用0补足,就是一个相应十六进制数的表示。 00100110.00010100B=26.14H 十进制转各进制 要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。 一、十进制转二进制 如:55转为二进制 2|55 27――1 个位 13――1 第二位 6――1 第三位 3――0 第四位

(完整word版)二进制、八进制、十六进制转换方式

第六章二进制、八进制、十六进制 6.1 为什么需要八进制和十六进制? 6.2 二、八、十六进制数转换到十进制数 6.2.1 二进制数转换为十进制数 6.2.2 八进制数转换为十进制数 6.2.3 八进制数的表达方法 6.2.4 八进制数在转义符中的使用 6.2.5 十六进制数转换成十进制数 6.2.6 十六进制数的表达方法 6.2.7 十六进制数在转义符中的使用 6.3 十进制数转换到二、八、十六进制数 6.3.1 10进制数转换为2进制数 6.3.2 10进制数转换为8、16进制数 6.4 二、十六进制数互相转换 6.5 原码、反码、补码 6.6 通过调试查看变量的值 6.7 本章小结 这是一节“前不着村后不着店”的课。不同进制之间的转换纯粹是数学上的计算。不过,你不必担心会有么复杂,无非是

乘或除的计算。 生活中其实很多地方的计数方法都多少有点不同进制的影子。 比如我们最常用的10进制,其实起源于人有10个指头。如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用20进制。 至于二进制……没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。 生活中还有:七进制,比如星期。十六进制,比如小时或“一打”,六十进制,比如分钟或角度…… (该版课程的内容更新及订正均已停止) 旧版课程打包下载 ---------------------------------- [想看涵盖“面向对象”、“图形编程”、“泛型编程”…… 的“最新2008年版白话C++”课程,请点击!] (另有: 博客版) 6.1 为什么需要八进制和十六进制? 编程中,我们常用的还是10进制……必竟C/C++是高级语言。 比如:

二进制与十进制的计算公式

10进制数转换为2进制数 给你一个十进制,比如:6,如果将它转换成二进制数呢? 10进制数转换成二进制数,这是一个连续除2的过程: 把要转换的数,除以2,得到商和余数, 将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。 听起来有些糊涂?我们结合例子来说明。比如要转换6为二进制数。 “把要转换的数,除以2,得到商和余数”。 那么: 要转换的数是6, 6 ÷ 2,得到商是3,余数是0。(不要告诉我你不会计算6÷3!) “将商继续除以2,直到商为0……” 现在商是3,还不是0,所以继续除以2。 那就: 3 ÷ 2, 得到商是1,余数是1。 “将商继续除以2,直到商为0……” 现在商是1,还不是0,所以继续除以2。 那就: 1 ÷ 2, 得到商是0,余数是1(拿笔纸算一下,1÷2是不是商0余1!) “将商继续除以2,直到商为0……最后将所有余数倒序排列” 好极!现在商已经是0。 我们三次计算依次得到余数分别是:0、1、1,将所有余数倒序排列,那就是:110了!6转换成二进制,结果是110。 把上面的一段改成用表格来表示,则为: 被除数计算过程商余数 66/230 33/211 11/201

(在计算机中,÷用 / 来表示) 如果是在考试时,我们要画这样表还是有点费时间,所更常见的换算过程是使用下图的连除: (图:1) 请大家对照图,表,及文字说明,并且自已拿笔计算一遍如何将6转换为二进制数。 说了半天,我们的转换结果对吗?二进制数110是6吗?你已经学会如何将二进制数转换成10进制数了,所以请算一下110换成10进制是否就是6。 二进制数转换为十进制数 二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…… 所以,设有一个二进制数:0110 0100,转换为10进制为: 下面是竖式: 0110 0100 换算成十进制 第0位 0 * 20 = 0 第1位 0 * 21 = 0 第2位 1 * 22 = 4 第3位 0 * 23 = 0

相关主题