C语言中的二进制、十进制、十六进制各是什么意思?

作者&投稿:崔毅 (若有异议请与网页底部的电邮联系)
~ 计算机中常用的数的进制主要有:二进制、八进制、十六进制,学习计算机要对其有所了解。 \x0d\x0a2进制,用两个阿拉伯数字:0、1; \x0d\x0a8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7; \x0d\x0a10进制,用十个阿拉伯数字:0到9; \x0d\x0a16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。 \x0d\x0a\x0d\x0a以下简介各种进制之间的转换方法: \x0d\x0a一、二进制转换十进制 \x0d\x0a例:二进制 “1101100” \x0d\x0a1101100 ←二进制数 \x0d\x0a6543210 ←排位方法 \x0d\x0a\x0d\x0a例如二进制换算十进制的算法: \x0d\x0a1*26 + 1*25 + 0*24 + 1*23 + 1* 22 + 0*21 + 0*20 \x0d\x0a↑ ↑ \x0d\x0a说明:2代表进制,后面的数是次方(从右往左数,以0开始) \x0d\x0a=64+32+0+8+4+0+0 \x0d\x0a=108 \x0d\x0a\x0d\x0a二、二进制换算八进制 \x0d\x0a例:二进制的“10110111011” \x0d\x0a换八进制时,从右到左,三位一组,不够补0,即成了: \x0d\x0a010 110 111 011 \x0d\x0a然后每组中的3个数分别对应4、2、1的状态,然后将为状态为1的相加,如: \x0d\x0a010 = 2 \x0d\x0a110 = 4+2 = 6 \x0d\x0a111 = 4+2+1 = 7 \x0d\x0a011 = 2+1 = 3 \x0d\x0a结果为:2673 \x0d\x0a\x0d\x0a三、二进制转换十六进制 \x0d\x0a十六进制换二进制的方法也类似,只要每组4位,分别对应8、4、2、1就行了,如分解为: \x0d\x0a0101 1011 1011 \x0d\x0a运算为: \x0d\x0a0101 = 4+1 = 5 \x0d\x0a1011 = 8+2+1 = 11(由于10为A,所以11即B) \x0d\x0a1011 = 8+2+1 = 11(由于10为A,所以11即B) \x0d\x0a结果为:5BB \x0d\x0a\x0d\x0a四、二进制数转换为十进制数 \x0d\x0a二进制数第0位的权值是2的0次方,第1位的权值是2的1次方?? \x0d\x0a所以,设有一个二进制数:0110 0100,转换为10进制为: \x0d\x0a计算: 0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 \x0d\x0a\x0d\x0a五、八进制数转换为十进制数 \x0d\x0a八进制就是逢8进1。 \x0d\x0a八进制数采用 0~7这八数来表达一个数。 \x0d\x0a八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方?? \x0d\x0a所以,设有一个八进制数:1507,转换为十进制为: \x0d\x0a计算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839 \x0d\x0a结果是,八进制数 1507 转换成十进制数为 839 \x0d\x0a\x0d\x0a六、十六进制转换十进制 \x0d\x0a例:2AF5换算成10进制 \x0d\x0a直接计算就是: 5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997 \x0d\x0a(别忘了,在上面的计算中,A表示10,而F表示15)、 \x0d\x0a\x0d\x0a现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。 \x0d\x0a假设有人问你,十进数 1234 为什么是 一千二百三十四?你尽可以给他这么一个算式: 1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100 \x0d\x0a\x0d\x0a十进制与二进制转换之相互算法 \x0d\x0a十进制转二进制: \x0d\x0a\x0d\x0a用2辗转相除至结果为1 \x0d\x0a\x0d\x0a将余数和最后的1从下向上倒序写 就是结果 \x0d\x0a\x0d\x0a例如302 \x0d\x0a\x0d\x0a302/2 = 151 余0 \x0d\x0a\x0d\x0a151/2 = 75 余1 \x0d\x0a\x0d\x0a75/2 = 37 余1 \x0d\x0a\x0d\x0a37/2 = 18 余1 \x0d\x0a\x0d\x0a18/2 = 9 余0 \x0d\x0a\x0d\x0a9/2 = 4 余1 \x0d\x0a\x0d\x0a4/2 = 2 余0 \x0d\x0a\x0d\x0a2/2 = 1 余0 \x0d\x0a\x0d\x0a故二进制为100101110 \x0d\x0a\x0d\x0a二进制转十进制 \x0d\x0a\x0d\x0a从最后一位开始算,依次列为第0、1、2...位 \x0d\x0a\x0d\x0a第n位的数(0或1)乘以2的n次方 \x0d\x0a\x0d\x0a得到的结果相加就是答案 \x0d\x0a\x0d\x0a例如:01101011.转十进制: \x0d\x0a\x0d\x0a第0位:1乘2的0次方=1 \x0d\x0a\x0d\x0a1乘2的1次方=2 \x0d\x0a\x0d\x0a0乘2的2次方=0 \x0d\x0a\x0d\x0a1乘2的3次方=8 \x0d\x0a\x0d\x0a0乘2的4次方=0 \x0d\x0a\x0d\x0a1乘2的5次方=32 \x0d\x0a\x0d\x0a1乘2的6次方=64 \x0d\x0a\x0d\x0a0乘2的7次方=0 \x0d\x0a\x0d\x0a然后:1+2+0 \x0d\x0a\x0d\x0a+8+0+32+64+0=107. \x0d\x0a\x0d\x0a二进制01101011=十进制107. \x0d\x0a\x0d\x0a一、二进制数转换成十进制数 \x0d\x0a\x0d\x0a由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。 \x0d\x0a\x0d\x0a二、十进制数转换为二进制数 \x0d\x0a\x0d\x0a十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。 \x0d\x0a\x0d\x0a1. 十进制整数转换为二进制整数 \x0d\x0a\x0d\x0a十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。 \x0d\x0a\x0d\x0a2.十进制小数转换为二进制小数 \x0d\x0a\x0d\x0a十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。 \x0d\x0a\x0d\x0a然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 \x0d\x0a\x0d\x0a1.二进制与十进制的转换 \x0d\x0a\x0d\x0a(1)二进制转十进制
方法:"按权展开求和" \x0d\x0a\x0d\x0a例: \x0d\x0a\x0d\x0a(1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10 \x0d\x0a\x0d\x0a=(8+0+2+1+0+0.25)10 \x0d\x0a\x0d\x0a=(11.25)10 \x0d\x0a\x0d\x0a(2)十进制转二进制 \x0d\x0a\x0d\x0a· 十进制整数转二进制数:"除以2取余,逆序输出" \x0d\x0a\x0d\x0a例: (89)10=(1011001)2 \x0d\x0a\x0d\x0a2 89 \x0d\x0a\x0d\x0a2 44 ?? 1 \x0d\x0a\x0d\x0a2 22 ?? 0 \x0d\x0a\x0d\x0a2 11 ?? 0 \x0d\x0a\x0d\x0a2 5 ?? 1 \x0d\x0a\x0d\x0a2 2 ?? 1 \x0d\x0a\x0d\x0a2 1 ?? 0 \x0d\x0a\x0d\x0a0 ?? 1 \x0d\x0a\x0d\x0a· 十进制小数转二进制数:"乘以2取整,顺序输出" \x0d\x0a\x0d\x0a例: \x0d\x0a\x0d\x0a(0.625)10= (0.101)2 \x0d\x0a\x0d\x0a0.625 \x0d\x0a\x0d\x0aX 2 \x0d\x0a\x0d\x0a1.25 \x0d\x0a\x0d\x0aX 2 \x0d\x0a\x0d\x0a0.5 \x0d\x0a\x0d\x0aX 2 \x0d\x0a\x0d\x0a1.0 \x0d\x0a\x0d\x0a2.八进制与二进制的转换 \x0d\x0a\x0d\x0a例:将八进制的37.416转换成二进制数: \x0d\x0a\x0d\x0a37 . 4 1 6 \x0d\x0a\x0d\x0a011 111 .100 001 110 \x0d\x0a\x0d\x0a即:(37.416)8 =(11111.10000111)2 \x0d\x0a\x0d\x0a例:将二进制的10110.0011 转换成八进制: \x0d\x0a\x0d\x0a0 1 0 1 1 0 . 0 0 1 1 0 0 \x0d\x0a\x0d\x0a2 6 . 1 4 \x0d\x0a\x0d\x0a即:(10110.011)2 =(26.14)8 \x0d\x0a\x0d\x0a3.十六进制与二进制的转换
例:将十六进制数5DF.9 转换成二进制: \x0d\x0a\x0d\x0a5 D F . 9 \x0d\x0a\x0d\x0a0101 1101 1111.1001 \x0d\x0a\x0d\x0a即:(5DF.9)16 =(10111011111.1001)2 \x0d\x0a\x0d\x0a例:将二进制数1100001.111 转换成十六进制: \x0d\x0a\x0d\x0a0110 0001 . 1110 \x0d\x0a\x0d\x0a6 1 . E \x0d\x0a\x0d\x0a即:(1100001.111)2 =(61.E)16


二进制、八进制、十进制、十六进制,在C语言中用在哪里
当然也可以换成其他进制 *\/注意:在C语言中,八进制和十六进制只能表示正整型。C语言源程序编译连接后所生成的.exe可执行程序属于二进制,但在源程序中无法用二进制表示。C语言位运算中真正计算时使用的就是二进制。如:unsigned char ch=4;ch=ch>>1;printf("%d",ch);输出值为8;...

C语言中二进制数怎么表示??
在C语言中,二进制数表示为以0b或0B开头的数字。1、二进制是计算机中最基础的数制,所有的数据都可以转换成二进制数。在C语言中,我们可以通过0b或0B前缀来表示二进制数。二进制数的大小计算方法是:将每一位上的数值乘以对应权值再相加得到十进制数。2、C语言中提供位运算符,可以对二进制数进行...

十进制,八进制,十六进制,二进制的英文翻译是什么?
八进制:Octal number system 一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。十六进制:Hexadecimal 是计算机中数据的一种...

C语言进制及其转换
1.机器数:一个数在计算机中的二进制表现形式;机器数是带符号的,在计算机用一个数的最高存放符号,正数为0,负数为1;如:十进制中的数+3,计算机字长尾8位,转换成二进制数就是00000011.如果是-3,那就是10000011;那么,这里的00000011和10000011就是机器数。 2.真值:因为第一位是符号位,所以机器数的形式值就不...

C语言中是用"OX"开头表示是十六进制数,那十进制,二进制,八进制呢?
1,C语言没有直接输出二进制的方法。2,八进制在输出的时候以0开头,例如:0123十进制的83 3,十进制正常输出,无特别表示。4,十六进制在输出的时候以0X或者0x开头,例如0x123 十进制的291。

c语言:写一个程序完成二进制与十进制,十进制与十六进制之间的转换。
计算机中常用的数的进制主要有:二进制、八进制、十六进制,学习计算机要对其有所了解。2进制,用两个阿拉伯数字:0、1;8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;10进制,用十个阿拉伯数字:0到9;16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这...

什么是2进制,8进制,10进制,16进制?
因此,在过去几十年里,八进制渐渐地淡出了。不过,还是有一些程序设计语言提供了使用八进制符号来表示数字的能力,而且还是有一些比较古老的Unix应用在使用八进制。 八进制逢八进一,基数为八,基本符号:0、1、2、3、4、5、6、7。位权8∧i。表示符号:O编辑本段八进制的转换 二进制与八进制的...

二进制数字后面的字母代表什么意思?
同使用的计算机语言有关,它们源于英文。B是二进制Binary的缩写。O是八进制Octal的缩写。Q是八进制Octal的缩写。为避免字母O误认作数字0,标识改为Q。D是十进制Decimal的缩写。二进制的规范:二进制(binary)在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的。这一系统中,...

C语言中是用"OX"开头表示是十六进制数,那十进制,二进制,八进制呢??
首先要纠正的是是0x或0X(数字零+字母x或X)而不是OX(字母O+字母X)。以0x或0X打头紧跟0~9及a~f或A~F等16个符号组成的数是十六进制数;不以0开头的0~9等10个数字组成的数被编译器确认为十进制数;以0开头的0~7等8个数字组成的数被认为是八进制数;C语言没有提供二进制输入、输出记数法。

c语言中的二进制字符是怎么表示的呢?
c语言中没有表示二进制的字符,但是你可以根据十进制、八进制或者十六进制转换一下。可以利用短除法,将十进制转变成二进制,我们一般的思路是这样的,下面给出一个例子:把20转换成二进制:20\/2=10...余数为0 最低位10\/2=5...余数为05\/2=2...余数为12\/2=1...余数为01\/2=0...余...

龙亭区15810378560: 用C语言编程将十进制转换为二进制和十六进制 -
宦宜复欣: 十进制转二进制:----------------------------------------------- #include<stdio.h> #include<conio.h> void main() { int d,n,i,j,a[50],Outformat=1; printf("输入一个数:"); scanf("%d",&n);if(n==0) printf("\n十进制 0 转换二进制数:0"); else { printf("\...

龙亭区15810378560: C语言中的二进制,八进制,十进制,十六进制是什么,还有,数组,
宦宜复欣: 二进制就是逢二进一,二进制里只有两个数字就是0和1.比如我们平时说的2,记做10,3记做11,4记做100,后面也是同样的道理,我们平时用的是十进制

龙亭区15810378560: c语言中b代表二进制,q代表八进制,d代表十进制,那么什么字符代表十六进制呢? -
宦宜复欣: H: hexadecimal 十六进制的 其他进制的代表字符: B: binary 二进制的 Q: quaternary 四进制的 D: decimal 十进制的 O: octal 八进制的. 扩展资料: 表示方式C语言、C++、Shell、Python、Java语言及其他相近的语言使用字首“0x”,例如“0x5A3”.开头的“0”令解析器更易辨认数,而“x”则代表十六进制(就如“O”代表八进制).在“0x”中的“x”可以大写或小写. 对于字符量C语言中则以x+两位十六进制数的方式表示,如xFF,同时也以H: hexadecimal 代表十六进制的. 参考资料来源:百度百科-十六进制

龙亭区15810378560: C语言中的十六进制如何书写? -
宦宜复欣: C语言中的十六进制,主要用于描述整型常量,细分而来有两类,一类是整型常量,一类是转义字符常量. 1、整型常量,一般以0x开头.比如1unsigned ui = 0x3f8ccccd; 2、转义字符常量,一般以\x开头,比如 1charx = '\x31';

龙亭区15810378560: C语言中字符串如何转换为二进制、八进制、十进制、十六进制 -
宦宜复欣: 什么意思,?没懂,,,是说转为 2 8 16进制的整数? 只要是整数 int.就只有大小.没有进制的区别. 所谓的进制,只是为了人为识别. 但是可以把整数,转换为响应进制的字符串. 举例 char num[] = "15";int val = atoi(num); //字符串转为整数 char tem[16] = {};_itoa(val,tem,2);//整数转为2进制字符串_itoa(val,tem,8);//8进制_itoa(val,tem,16);//16进制_itoa(val,tem,10);

龙亭区15810378560: c语言中十进制和十六进制是什么意思? -
宦宜复欣: 十进制和十六进制是两种计数方法,不专属于c语言 10进制是说每位有十个数,逢10进位,表示为 0-9 16进制则是逢 16进位,表示为 0-9 a-f

龙亭区15810378560: 二进制、八进制、十进制、十六进制,在C语言中用在哪里 -
宦宜复欣: 二进制是计算机在实际计算中使用的计数方式,存储和运算都是二进制的 八、十、十六进制是在编程时,不方便使用二进制(位数多,凌乱,不直观),所以用这些进制来写到程序中,计算机在编译时会将它们转换成二进制数据来用.所以这些进制是方便程序设计者写程序的.

龙亭区15810378560: c语言中二进制 十进制 八进制 十六进制之间的换算? -
宦宜复欣: 二进制的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从下向上倒序写...

龙亭区15810378560: 16进制 10进制 2进制 在c语言中是什么意思,有32进制吗? -
宦宜复欣: 16进制 10进制 2进制是数值的表示方法 一个数值的大小可以表示成前面的任何一种进制 十六进制是0-9 A B C D E F 表示0到15 满16进1 十进制0-9满10进1 二进制是0 1满2进1 c语言中最高只讲到16进制

龙亭区15810378560: 在c语言中2进制,10进制,8进制,16进制是什么鬼?我看了好几天各种教程都没说明清楚进制怎么算的 -
宦宜复欣: 二进制只有0,1

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网