在C/C++中float是32位的,double是64位的,两者在内存中的存储方式和能够表示的精度均不同,目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。无论是float还是double,在内存中的存储主要分成三部分,分别是:(1)符号位(Sign):0代...
分类:
编程语言 时间:
2014-09-21 14:03:50
阅读次数:
335
问一个基本的问题。
负数在计算机中如何表示?
举例来说,+8在计算机中表示为二进制的1000,那么-8怎么表示呢?
很容易想到,可以将一个二进制位(bit)专门规定为符号位,它等于0时就表示正数,等于1时就表示负数。比如,在8位机中,规定每个字节的最高位为符号位。那么,+8就是00001000,而-8则是10001000。
但是,随便找一本《计算机原理》,都会告诉你,实际上,计算机内部采用2的补码(Two'sComplement)表示负数。
什么是2的补码?
它是一种数值的转换方法,要分二步完成:
第一步...
分类:
其他好文 时间:
2014-09-19 19:26:15
阅读次数:
210
转自:http://blog.csdn.net/hackbuteer1/article/details/7390093^: 按位异或;&:按位与; | :按位或计算机系统中,数值一律用补码来表示:因为补码可以使符号位和数值位统一处理,同时可以使减法按照加法来处理。对补码做简单介绍:数值编码分为原码,...
分类:
其他好文 时间:
2014-09-13 11:56:55
阅读次数:
213
原码: 计算机中所有的数均用0、1编码表示,数字的正负号也不例外,如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。1、一个正数,当用原码、反码、补码表示时,符号位都固定为0,用二进制表示的数位值都相同,即三种表示方法完全一样。 2、一个负数,当用原码、反码、补码表示...
分类:
其他好文 时间:
2014-09-09 17:32:49
阅读次数:
180
最近在看集合源码,发现ArrayDeque里面用到了大量的&运算,这牵扯到了二进制。突然发现自己对负数的二进制有点模糊了,对此进行了一些支持补充。
首先我们要对原码、反码和补码有个了解:
1、所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
2、反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
...
分类:
编程语言 时间:
2014-09-09 16:11:58
阅读次数:
257
问题:printf("%x,%d\n",~7,~7);解:十进制数字7的二进制码00000000000000000000000000000111按位取反运算~711111111111111111111111111111000所以printf("%x\n",~7);//十六进制输出:fffffff811111111111111111111111111111000的最高八位符号位(11111111,表示负数),有符号整..
分类:
编程语言 时间:
2014-09-09 13:50:59
阅读次数:
231
一,了解即可
1.整数存储
数据的存储,二进制储存基本不用的,只要知道正数的原码,反码补码是相同的,符号位是0,负数原码符号位为1,其余是表示数值的绝对值,反码符号位为1,其余各位对原码取反,补码为反码加1.
2.实型数据存储
不做介绍
3字符型存储
每个字符占一个字节,存储它的ASCII码。如‘A’为65.详情见ASCII表
二 各种数据的大小
数...
分类:
其他好文 时间:
2014-09-04 13:26:29
阅读次数:
192
整数的第一位表示符号位。
1 正整数
正整数在计算机中直接用它的二进制存储,例如:
short s = 3;3 = 2^1 + 2^0
短整型一般为2个字节,即16位,它的对应的存储方式为:
0 000 0011
所以,短整型的表示范围为:-2^15 ~ +2^15
0是个特例,它有两种表示方式:
1 000 0000
0 000 0000
所以,短整型一共只有2^16 - ...
分类:
其他好文 时间:
2014-09-03 09:43:24
阅读次数:
198
可以经常在ACM代码中看到 while(~scanf("%d",&n)){ } 这样的代码,意思是在读到输入结尾时循环也结束。
一般在读到输入流结尾时,scanf返回的是EOF。
EOF是在头文件stdio.h中定义的常量,一般为-1。
-1 的原码是10000001,反码是1111110,补码是11111111。复习一下,正数的原码、反码、补码都是一样的;负数的原码是符号位为1,反码是(对...
分类:
其他好文 时间:
2014-08-31 00:33:10
阅读次数:
275
补充知识:1)正整数的补码与原码相同; 2)求负整数的补码:原码 符号位不变,数值位各位取反,最后整个数加1得到补码; 3)按位与&的结果是补码与补码运算得到的结果。进制转换:1)十进制整数----->二进制(除2取余倒排) 2)二进制--->十进制(按权重相乘相加) 3)十六进制 二进制(1位对应...
分类:
其他好文 时间:
2014-08-27 12:38:57
阅读次数:
189