c语言中十进制,八进制,十六进制,c语言只接受二进制十进制十六进制的数

  c语言中十进制,八进制,十六进制,c语言只接受二进制十进制十六进制的数

  二进制是计算技术中广泛使用的一种数字系统。二进制数据是由0和1表示的数字。它的基数是2,进位规则是“每二进一”,借位规则是“借一当二”,是18世纪德国数学哲学大师莱布尼茨发现的。目前计算机系统基本上是二进制系统,数据主要以补码的形式存储在计算机中。电脑中的二进制是一个非常微小的开关,“开”代表1,“关”代表0。

  19世纪,爱尔兰逻辑学家乔治布尔将逻辑命题的思维过程转化为某种符号为“0”的代数演算1 ,二进制就是二进制。0和1是基本运算符。因为它只使用了0和1两个数字符号,所以非常简单方便,易于电子化实现。

  二进制数据的表示

  二进制数据也采用位置计数法,其比特权重是2的幂。比如二进制数据110.11,每2进1,它的权重顺序是2,2,2。对于n位整数,m位小数的二进制数据用加权系数展开表示,可以写成:

  二进制数据通常可以写成:

  比如把二进制数据111.01写成加权系数的形式。

  像十六进制和八进制一样,二进制也是以二为幂的。

  二进制数据算术运算的基本规律与十进制数非常相似。最常用的是加法和乘法。

  二进制加法

  有四种情况:

  0 0=0

  0 1=1

  1 0=1

  1 1=10

  0进位是1。

  例如,求1011 (2)和11 (2)的和

  1011 11[3]

  二进制乘法

  有四种情况:

  00=0

  10=0

  01=0

  11=1

  二进制减法

  0-0=0,

  1-0=1,

  1-1=0,

  0-1=1。

  二进制除法

  01=0,

  11=1。

  计算机中十进制到二进制的转换

  计算机中的小数是由二进制得到的,通常是乘以二。

  例如,0.65转换成二进制就是:

  0.65 2=1.3取1,剩下0.3继续乘以2四舍五入。

  0.3 2=0.6取0,剩下0.6继续乘以2四舍五入。

  0.6 2=1.2取1,剩下0.2继续乘以2进行四舍五入。

  0.2 2=0.4取0,剩下0.4继续乘以2四舍五入。

  0.4 2=0.8取0,剩下0.8继续乘以2进行四舍五入。

  0.8 2=1.6取1,剩下0.6继续乘以2进行四舍五入。

  0.6 2=1.2取1,剩下0.2继续乘以2进行四舍五入。

  .

  循环直到达到精度极限(所以,计算机保存的十进制数一般都有误差,所以在编程中,如果要比较两个小数是否相等,只能在一定精度范围内比较是否相等。)。这时,十进制的0.65可以表示为:二进制的0.1010011。

  另外值得一提的是,在计算机中,除了十进制是有符号的,其他如二进制、八进制、十六进制都是无符号的。

  在现实生活和计数器中,如果表示数字的“器件”只有两种状态,比如电灯的“开”和“关”,开关的“开”和“关”。一种状态表示数字0,另一种状态表示数字1,1加1应该等于2。因为没有数字2,所以只能在前一位输入一,即采用“全二进一”的原则,这与十进制中“全十进一”的原则一模一样。

  1 1=10,10 1=11,11 1=100,100 1=101,

  101 1=110,110 1=111,111 1=1000,……,

  可见二进制10代表二,100代表四,1000代表八,10000代表十六,……。

  二进制也是一种“价值体系”。同一个数字1用不同的数字表示不同的值。比如1111,从右向左数,第一个数字1是1,第二个数字1代表2,第三个数字1代表4,第四个数字1代表8,第五个数字1代表16。

  所谓二进制,是计算机运算中使用的算法。二进制系统只由1和0组成。

  举个例子,你在一年级的时候一定听说过“进位缸”(“数字缸”)!十进制是十根棍子扎成一捆,放入十位桶,十位桶扎成一大捆,放入一百位桶的制度.

  二进制也是如此。当一个位柱上有两位时,一位到第十位,一位到第一百位。当一百位数有两位时,二进制是世界上计算机上使用的第一种算法。最老的电脑里都有灯泡,计算的时候,比如表达“一”,第一个灯泡就会亮。为了表示“二”,第一个灯泡熄灭,第二个灯泡亮起。

  当二进制等于2时,需要进位。

  0=00000000

  1=00000001

  2=00000010

  3=00000011

  4=00000100

  5=00000101

  6=00000110

  7=00000111

  8=00001000

  9=00001001

  10=00001010

  ……

  即最基本的运算方式广泛采用二进制,计算机运算计算的基础就是基于二进制。只需用二进制执行操作,用其他二进制显示即可。

  其实分隔二进制三元组是八进制,四进制是十六进制。

  二进制和十进制的区别在于数字的个数和进位规律的巨大差异。顾名思义,二进制的计数法则是每二进一,是以2为基数的计数系统。数字10的意义和十进制完全不同。在十进制中,就是我们通常所说的十。在二进制系统中,其中一个含义可能是表示一个大小相当于十进制数2的数值。

  我们可以把二进制数10表示为:10=1 2 1 0 2 0。

  八进制的

  八进制(基数为8)记数法在早期的计算机系统中非常常见,所以偶尔我们也能看到有人使用八进制记数法。八进制适用于12位和36位计算机系统(或其他多位数为3的计算机系统)。

  八进制,缩写OCT或O,是一种计数方法,在八进制中使用0、1、2、3、4、5、6、7八个数字,开头必须以数字0开头。八进制数比九进制数更容易书写,所以它们经常用于计算机计算。

  比如十进制32用八进制表示,即040,十进制9和27分别用八进制标记为011,十进制32用十进制表示,即3 8 1 2 8 0=26。

  八进制数不能代表负数和小数。它们用来表示整数。

  八进制(基数为8)记数法在早期的计算机系统中非常常见,所以偶尔我们也能看到有人使用八进制记数法。八进制适用于12位和36位计算机系统(或其他多位数为3的计算机系统)。但是对于两个幂的计算机系统(8位、16位、32位和64位计算机系统),八进制就不太好了。所以在过去的几十年里,八进制逐渐淡出。然而,仍然有一些编程语言提供了使用八进制符号来表示数字的能力,仍然有一些较老的Unix应用程序使用八进制。

  十六进制的

  英文名:十六进制数字系统,是计算机中数据的表示。它不同于我们日常生活中的十进制记数法。它由0-9和A-F组成,字母不区分大小写。与十进制的对应关系是:0-9对应0-9;A-F对应10-15;n元数可以用0-(n-1)的数字表示,超过9的可以用字母A-Z表示。

  十进制的32用十六进制表示,即20。

  十六进制20用十进制表示就是:2 16 0 16=32。

  十进制数转换成十六进制数的方法是:十进制数的整数部分“除以16”,十进制数的小数部分“四舍五入16”。

  比如说,十进制的0.1换算成八进制的0,40800.000000000005也就是0.1乘以8=0.8,如果小于1就不四舍五入,0.8乘以8=6.4,取整数6,0.4乘以8=3.2,取整数3,依次计算。

  在编程中,我们通常使用十进制。毕竟C/C是一门高级语言。

  例如:

  int a=100,b=99

  但由于数据是在计算机中表示的,最终以二进制的形式存在,所以有时候用二进制可以更直观地解决问题。但是二进制数太长了。例如,int类型占用4个字节和32位。例如,用int类型的二进制数表示的100将是:

  0000

  0000

  0000

  0000

  0110

  0100

  面对这么长的数字,没有人会喜欢思考或者操作。所以C,C没有提供直接在代码中写二进制数的方法。这个问题可以用十六进制或者八进制来解决。因为,十进制越大,数的表达式长度就越短。但是,为什么是十六进制或者八进制,而不是别的,比如十进制9或者十进制20?2、8、16分别是2的1、3、4次方。这使得直接将三个碱基相互转换成为可能。八进制或十六进制缩短了二进制数,但保留了二进制数的表达特征。

  使用十六进制的意义在于:

  1计算机领域使用的一种重要的数字系统。

  计算机理论的描述,计算机硬件电路的设计,都是非常有益的。比如在逻辑电路设计中,不仅要考虑功能的完备性,还要尽可能少的使用硬件。十六进制可以在一些理论分析中发挥作用。例如,四位二进制电路最多有十六种状态,即十六进制形式。只有这十六个状态都用了或者用了尽可能多,才能尽可能的利用硬件资源。

  十六进制更短,因为一个十六进制数在转换中可以顶四个二进制数。

  十六进制转换

  1、二进制到十进制

  方法:“重量总和”

  例如:

  规则:个位数的次数为0,第十位数的次数为1,依次递增,而十。

  十分位数的度数是-1,百分位的度数是-2,依次递减。

  注意:不是任何十进制小数都能转换成位数有限的二进制数。

  2.十进制到二进制的转换

  十进制整数到二进制数:“除以2得到余数,逆序排列”(除以2得到余数)

  例如:

  892 ……1

  442 ……0

  222 ……0

  112 ……1

  52 ……1

  22 ……0

  一个

  十进制十进制数转二进制数:“乘2取整,按顺序排列”(乘2取整)

  例如:

  (0.625)10=(0.101)2

  0.625X2=1.25 ……1

  0.25 X2=0.50 ……0

  0.50 X2=1.00 ……1

  3.将二进制数转换为十六进制数:

  二进制数转换成十六进制数时,只需从小数点开始,左右每四位数分成一组(不足四位数可加0),然后写出每组二进制数对应的十六进制数。

  将十六进制数转换为二进制数:将每个十六进制数转换为4位二进制数,得到一个二进制数。

  十六进制数字和二进制数字的对应关系如下:

  0000 - 0 0100 - 4 1000 - 8 1100 - C

  0001 - 1 0101 - 5 1001 - 9 1101 - D

  0010 - 2 0110 - 6 1010 - A 1110 - E

  0011 - 3 0111 - 7 1011 - B 1111 - F

  例如:将十六进制数5DF.9转换为二进制数:

  第五天第九天

  0101 1101 1111 .1001

  即(5DF.9)16=(10111011111.1001)2{十六进制怎么会有小数点}

  例如:将二进制数1100001.111转换为十六进制数:

  0110 0001 .1110

  6 1 .E

  即(1100001.111)2=(61。E)16

  4.二进制数到八进制数的转换:从小数点开始,整部分左,小数部分右,每3位数为一组数,用一个八进制数表示。如果少于3位数,3位数要补“0”得到一个八进制数。

  将八进制数转换为二进制数:将每个八进制数转换为3位二进制数,得到一个二进制数。

  八进制数和二进制数的对应关系如下:

  000 - 0 100 - 4

  001 - 1 101 - 5

  010 - 2 110 - 6

  011 - 3 111 - 7

  例如:将八进制37.416转换为二进制数:

  3 7 .4 1 6

  011 111 .100 001 110

  即(37.416)8=(11111.10000111)2

  例如:将二进制10110.0011转换为八进制:

  0 1 0 1 1 0 .0 0 1 1 0 0

  2 6 .1 4

  即(10110.0011)2=(26.14)8

  二进制和八进制的转换类似于二进制和十六进制的转换,只不过需要以三位数而不是四位数为一组进行运算。

  二进制/八进制转换表

  二进制

  八进制的

  000

  0

  001

  一个

  010

  2

  011

  三

  100

  四

  101

  五

  110

  六

  111

  七

  为了将二进制数转换成八进制数,只需将二进制串分成每三位一组(如有必要,用零填充前面),然后查表2-2,用相应的八进制数替换三位的位串。

  5.八进制数被转换成十六进制数。

  把八进制数转换成二进制再转换成十六进制就行了。

  一种计数方法,在八进制数中使用八个数字,0,1,2,3,4,5,6,7,并且开头必须以数字0开始。八进制数比二进制数更容易书写,常用于计算机计算。

  例如:

  十进制的32表示为8,也就是:040。

  十进制的9和27在八进制中分别记为011和033。

  6、八进制到十进制:

  将八进制数12.6转换为十进制数

  (12.6)8=18^1 28^0 68^-1=(10.75)10

  7、八进制转化为二进制:

  按照顺序,每一个1位的八进制数都重写为等价的3位二进制数,顺序不变。

  例如:(17.36)8=(001 111.011 110)2=(1111.0111)2

  八进制到十六进制

  先把八进制转换成二进制,再把二进制转换成十六进制。

  例如:(712)8=(1110 0101 0)2=(1CA)16

  8、十六进制到八进制:

  首先,用1比4的方法将十六进制转换成二进制;然后用三合一的方法把二进制转换成八进制。

  例如:(1CA)16=(111001010)2=(712)8

  注意:小数点前的高0和小数点后的低0可以去掉。

  9.抽取和八进制

  方法:除以8得到余数。

  示例:将十进制数115转换为八进制数。

  8 115…… 3

  8 14 …… 6

  8 1 …… 1

  结果:(115)10=(163)8

  方法:首先采用十进制二进制方法,然后将二进制数转换为八进制数。

  例如:(115)10=(1110011)2=(163)8

  10.将十六进制转换成十进制。

  十六进制是每16进1,但是我们从0到9只有十个数字,所以我们用A,B,C,D,E,F这六个字母分别代表10,11,12,13,14,15。字母不区分大小写。

  十六进制数的第0位的权重是16的0次方,第1位的权重是16的1次方,第2位的权重是16的2次方.

  所以在第n(n从0开始)位上,如果是,则数字X (X大于等于0,X小于等于15,即f)代表X16的n次方。

  假设有一个十六进制数2AF5。

  直接计算是:

  5160 F161 A162 2163=10997

  也可以垂直表达:

  第0名:5160=5

  第一名:f 16 1=240

  第二名:A162=2560

  第三名:2163=8192

  -

  10997

  这里可以看出,所有十进制转换成十进制的关键在于它们的权重不同。

  假设有人问你,十进制数1234为什么是1234?你可以给他这样一个公式:

  1234=1103 2102 3101 4100

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: