C语言二进制详解.

作者&投稿:鬱耍 (若有异议请与网页底部的电邮联系)
C语言如何表示二进制?~

C语言中二进制的表示方法

C语言中二进制的表示方法

在数学计算中,二进制计数系统的公分母是最小的,它以2为基数。你还记得在小学或中学时所学的不同的计数系统吗?笔者在上小学时,曾在一堂数学课中学过以6为基数的计数系统;你先数1,2,3,4,5,然后是10,11,12,13,14,15,然后是20,等等,实际上,应该先数0,1,2,3,4,5,然后是10,1l,12,13,14,15,等等。从O开始数,能比较清楚地看出每6个数字组成一组——因此6就是基数。注意,你应该从O开始一起数到比基数小1的数(因为基数是6,所以你应该从O数到5)。当你数到5后,接着应该开始数两位数。如果你思考一下,你就会发现这与以10为基数(十进制)的计数系统是类似的——在你数到比基数小1的数(9)后,就转到两位数,并继续往下数。
计算机中的计数系统以2为基数——即二进制。由于以2为基数,所以你先数O,1,然后是10,11,然后是100,101,110,111,然后是1000,1001,1010,1011,1100,1101,1110,1111,等等。与以6为基数时不同,在以2为基数时,在数到两位数之前,只需从O数到1。
那么,为什么在计算机中要以2为基数呢?其原因在于计算机中使用了晶体管。晶体管使现代计算机的出现成为可能。晶体管就象电灯开关,电灯开关有“开”和“关”两种状态,晶体管也是如此。你可以认为“关”表示0,“开”表示1,这样,你就可以用一个晶体管(如果你愿意,也可以用一个电灯开关)来进行从。到1的计数了。仅仅使用两个数字(O到1)还不能做任何复杂的计算,但是我们还可以继续下去。假设有一个电灯开关控制面板,上面有4个大电灯开关,尽管每个开关只有两种状态,但是这些开关组合起来就会有16或2。(4个开关,每个2种状态)种不同的状态。这样,你就可以用4个开关来进行从。到15的计数了,见表20.22。
表20.22 进制计数
-------------------------------------------------------
开关 十进制值 幂
-------------------------------------------------------
O O
1 1 20
10 2 21
11 3
100 4 22
101 5
110 6
111 7
1000 8 23
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15
-------------------------------------------------------
上表说明了很重要的三点:
通过把开关并排放在一起,你就可以用它们来计数了——在本例中最多可以数到15(总共16次计数);
你可以把每个开关看作是一个二进制位,就象十进制系统中的十进制位一样;
如果每个开关都代表一个二进制位,那么它们刚好也都代表一个2的幂(20,21,22,23,等等)。
此外,请注意,在表中出现2的幂的地方,计数结果就要增加一个二进制位。这与十进制系统是相同的,每增加一个十进制位时,这个新的十进制位也正是一个10的幂(1=100,10=101,100=102,等等)。明白了这一点后,你就可以很容易地把二进制数转换为十进制数了,例如,二进制数10111就是(1×24)+(O×23)+(1×22)+(1×21)+(1×20),它等于十进制的(16+0+4+2+1)或23。10 1110 1011,一个大得多的二进制数,就是(1×29)+(O×28)+(1×27)+(1×26)+(1×25)+(0×24)+(1×23)+(O×22)+(1×21)+(1×20),它等于十进制的(512+0+128+64+32+0+8+0+2+1)或747。
那么所有这些和我们有什么关系呢?在计算机领域中,存在着位(bit),半字节(nibble)和字节(byte)。一个半字节是4位,一个字节是8位。什么是一个位呢?它就是一个晶体管。因此,一个字节就是8个相邻的晶体管,就象表20.1中的4个开关一样。记住,如果你有4个组合在一起的开关(或晶体管),你就可以数24或16,你可以把这看作是由开关组成的一个半字节。如果一个半字节是4个晶体管组合在一起,那么一个字节就是8个晶体管组合在一起。你可以用8个晶体管数到2。或256,从另一个角度看,这意味着一个字节(含8个晶体管)可以表示256个不同的数字(从0到 255)。再深入一点,Intel 386,486和Pentium处理器被叫做32位处理器,这意味着这些Intel芯片所进行的每一次运算都是32位宽或32个晶体管宽的。32个晶体管,或32位,等价于232或4,294,967,296,即它们能表示超过40亿个不同的数字。
当然,上述介绍还不能解释计算机是如何利用这些数字产生那种神奇的计算能力的,但它至少解释了计算机为什么要使用以及是如何使用二进制计数系统的。


机器语言二进制到底是怎么算的 举个例子说明一下谢谢
例如:7+8 先将7放入ax,再将8放入bx,再执行add相加,结果在ax中,结果为0Fh即十进制15

能不能给我讲讲C语言中实数的二进制形式,是怎样存储的?
知道了这四部分的占位,按二进制估计大小范围,再换算为十进制,就是你想知道的数值范围。对编程人员来说,double 和 float 的区别是 double 精度高,有效数字 16 位,float 精度 7 位。但 double 消耗内存是 float 的两倍,double 的运算速度比 float 慢得多,C 语言中数学函数名称 double 和 ...

C语言中2进制是什么意思
二进制数是逢2进位的进位制,0、1是基本算符;计算机运算基础采用二进制。电脑的基础是二进制。在早期设计的常用的进制主要是十进制(因为我们有十个手指,所以 二进制数 十进制是比较合理的选择,用手指可以表示十个数字,0的概念直到很久以后才出现,所以是1-10而不是0-9)。电子计算机出现以后,...

C语言中二进制的表示方法
详情请查看视频回答

二进制代码的基本概念
相关简介二进制代码语言或称为机器语言,计算机可以直接识别,不需要进行任何翻译的语言。每台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为面向机器的语言,也称为机器语言。它是第一代的计算机语言,机器语言对不同型号的计算机来说一般是不同的。 直接用二进制代码指令表达的计算机语言...

C语言中二进制求补码过程中取反后再加1,那个1是怎么加的?跪求!_百度...
但是计算机在内部处理的时候是转换成二进制进行处理的。C语言可以计算15的反码为-16,这个按照反码的定义是对的。代码如下: #include <stdio.h> int main(void) { int a,b; a = 15; b = ~a; printf("b=%d\\n",b); return 0; } c语言 二进制补码加法程序怎么写? 转化...

C语言中二进制求补码过程中取反后再加1,那个1是怎么加的?
二进制运算当然是在二进制数字间的运算。正数的补码等于原码,负数的补码就是取反加一(符号位不动)。举个“栗子”:\\x0d\\x0a求-7的补码。\\x0d\\x0a因为给定数是负数,则符号位为“1”。\\x0d\\x0a后七位:-7的原码(10000111)→按位取反(11111000)(负数符号位不变)→加1(11111001 ...

二进制代码是什么意思
别 名: 低级语言,二进制代码语言 定 义:机器语言是直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,例如某台计算机字长为16位,即有 16个二进制数组成一条指令或其它信息。16个0和1可组成各种排列组合,通过线路...

用2进制机器语言怎么表达我爱你?
520和521都有我爱你的意思,它们是十进制数,转化成二进制就是:520:101010000 521:101010001 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个 数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师 莱布尼兹发现。当前的 ...

二进制怎么翻译成文字
2、将二进制位转换为十进制数:需要将二进制位按照固定的顺序转换为十进制数。3、根据字符编码系统将十进制数映射为对应的字符:在计算机中,每个字符都有对应的唯一的二进制编码。例如,26个字母分别对应着从65到90的十进制数。4、使用编程语言提供的转换函数或方法:编程语言通常提供了转换函数或方法,...

湖里区13056791277: C语言中怎样表示二进制数据 -
薛省维宁: C语言中二进制的表示方法

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

湖里区13056791277: C语言二进制详解. -
薛省维宁: 在数学计算中,二进制计数系统的公分母是最小的,它以2为基数.你还记得在小学或中学时所学的不同的计数系统吗?笔者在上小学时,曾在一堂数学课中学过以6为基数的计数系统;你先数1,2,3,4,5,然后是10,11,12,13,14,15,然后是20,...

湖里区13056791277: 二进制数的运算 C语言程序运算 -
薛省维宁: 这个可以通过按位或运算来做://---------------------------------------------------------------------------#include <stdio.h>int main(void) {int a=15<<4|15;/*1111B=15D*/printf("%d",a); return 0; } //---------------------------------------------------------------------------

湖里区13056791277: 怎么用c语言解析二进制文件 -
薛省维宁: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ...

湖里区13056791277: c语言二进制 -
薛省维宁: 1的16为二进制为 0000 0000 0000 0001 取反 为 1111 1111 1111 1110 再加1 为 1111 1111 1111 1111

湖里区13056791277: 计算机二进制是什么意思?c语言是什么? -
薛省维宁: 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现.当前的计算机系统使用的基本上是二进制系统. C语言是Combined Language(组合语言)的中英混合简称.是一种计算机程序设计语言.它既具有高级语言的特点,又具有汇编语言的特点.它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序.因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发.

湖里区13056791277: 在用C语言编程时,二进制数怎么表示
薛省维宁: 前面加0b表示二进制 加0x表示十六进制

湖里区13056791277: C语言中怎么输出数据的二进制 -
薛省维宁: 没有专门的输出二进制语句 需要自己写函数. 比如 void print_bin(int n) {int i;for(i=sizeof(n)*4-1; i>=0; i --){if(n&(1<<i))printf("1");else printf("0");} }这个是通过位操作 来打印一个int型的所有二进制值的函数.

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