❶ 内存中数据以4字节和整型两种方式存放
感觉你问的2个东西是不同的概念。
4字节,表示它存放的数量。
整型,表示它存放的形式。
❷ 为使4字节组成的字能从存储器中一次读出,要求存放在存储器中的字边界对齐,一个字的地址码应是什么
边界对齐法:假设数据字长32位,存储字长(一个存储周期最多能够从主存读写的数据位数)64位。双子数据的起始地址的最末三个二进制位必须是000,单字数据的起始地址的最末两位必须为00,半字数据的起始地址的最末位必须为0。这种存储方式能保证无论访问双字、单字、半字或字节,都能在一个存储周期完成。
答案:最低两位为00
❸ Vc6.0为int变量开辟4个字节的内存空间,并按整型数的存储方式存放数据,允许存放的数值范围是怎样得到的
4个字节就是32个BIT,最高一个BIT作为符号位,剩下31BIT, 这个范围就是这31BIT所能表达的最大数值,即2的31次方。
❹ 一个占四字节的正整数,在内存中的存储方式是低8位在前(第一个字节),高8位在后(第四个字节)吗
字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端、大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。
你说的这张存储方式,是小端字节序。
❺ C语言中,各种类型的整型数据在内存中都占用4个字节吗
不是。
C标准并没有具体给出规定哪个基本类型应该是多少个字节数,而且这个也与OS、编译器有关,比如同样是在32位操作系统,VC++的编译器下int类型为4个字节,而在tuborC下则是2个字节。
整型类型在虽然16位、32位或者64位的机子各种类型并不一样,但有几条规则(ANSI/ISO制定):
short至少占用2个字节。
int建议为一个机器字长,32位环境下为4字节,64位环境下为8字节。
short的长度不能大于int,long的长度不能小于int。
(5)四字节存储方法扩展阅读
整型数据分为基本整形(int)、短整型(short int)、长整型(long int)以及新添加的双长整型(long long int)。
基本整形(int):一般占据2个或者4个字节,这都是有编译系统决定的。一般来讲在vc中计算机给它分配4个字节,在计算机中整型数据一般是按补码的形式存储的。
短整型(short int):在vc中计算机分配给短整型的内存大小为2个字节。存储方式与基本整形相同,一个短整型的数据范围是:-32768-32767。
长整型数据(long int):在vc中系统分配给它4个字节,多以一个长整型数据的范围为-2的31次方到2的31次方减一。
双长整型(long long int):在vc中系统给它分配8个字节,这种数据类型一般比较少用。
❻ 内存地址用十六进制表示,那么在内存中用4字节怎么存储是补码形式存储吗
在C/C++中,内存地址(指针)使用一个int类型记录和存储。存储使用的是原码不是补码,只是高位在后,低位在前。
❼ 单字节、双字节、4字节都是什么意思
单字节指只占1个英文字符;双字节是占2个英文字符的,中文字符都占两个字节,4字节是指占4个
英文字符。
计算机中的数据都是以0和1来表示的,其中一个0或者一个1称之为一位,8位称为一个字节(Byte),两个字节称为一个字(Word)(双字节),4个字节称为双字(Dword)(四字节)。
单字节的英文是Byte;比特是最小的数值单位,它的英文是Bit。
(7)四字节存储方法扩展阅读:
字节的换算:
1 B/byte(字节) = 8 bit(比特) 。
1 KB(千字节) = 1024 B/byte(字节) 。
1 MB = 1024 KB 。
1 GB = 1024 MB 。
1TB =1024 GB 。
1 PB = 1024 TB 。
1 EB = 1024 PB。
比特和位:
比特和位实际上是同一个东西,计算机只能处理二进制数据流,二进制的0或1就代表一个位。 计算机中的32/64位指计算机的cpu一次能处理的最大位数。8字节等于64位也就是说cpu可以一次处理8个字节的数据。
参考资料:网络-字节
❽ 为什么float是单精度的,用4个字节储存,能得到的确是6~7位有效数
浮点型变量在计算机内存中占用4字节(Byte),即32-bit。遵循IEEE-754格式标准。 一个浮点数由2部分组成:底数m 和 指数e。 ±mantissa × 2exponent (注意,公式中的mantissa 和 exponent使用二进制表示) 底数部分 使用2进制数来表示此浮点数的实际值。 指数部分 占用8-bit的二进制数,可表示数值范围为0-255。 但是指数应可正可负,所以IEEE规定,此处算出的次方须减去127才是真正的指数。所以float的指数可从 -126到128. 底数部分实际是占用24-bit的一个值,由于其最高位始终为 1 ,所以最高位省去不存储,在存储中只有23-bit。 到目前为止, 底数部分 23位 加上指数部分 8位 使用了31位。那么前面说过,float是占用4个字节即32-bit,那么还有一位是干嘛用的呢? 还有一位,其实就是4字节中的最高位,用来指示浮点数的正负,当最高位是1时,为负数,最高位是0时,为正数。 浮点数据就是按下表的格式存储在4个字节中: Address+0 Address+1 Address+2 Address+3 Contents SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM S: 表示浮点数正负,1为负数,0为正数 E: 指数加上127后的值的二进制数 M: 24-bit的底数(只存储23-bit) 主意:这里有个特例,浮点数 为0时,指数和底数都为0,但此前的公式不成立。因为2的0次方为1,所以,0是个特例。当然,这个特例也不用认为去干扰,编译器会自动去识别。 通过上面的格式,我们下面举例看下-12.5在计算机中存储的具体数据: Address+0 Address+1 Address+2 Address+3 Contents 0xC1 0x48 0x00 0x00 接下来我们验证下上面的数据表示的到底是不是-12.5,从而也看下它的转换过程。 由于浮点数不是以直接格式存储,他有几部分组成,所以要转换浮点数,首先要把各部分的值分离出来。 Address+0 Address+1 Address+2 Address+3 格式SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM 二进制 11000001 01001000 00000000 00000000 16进制 C1 48 00 00 可见: S: 为1,是个负数。 E:为 10000010 转为10进制为130,130-127=3,即实际指数部分为3. M:为 10010000000000000000000。 这里,在底数左边省略存储了一个1,使用 实际底数表示为 1.10010000000000000000000 到此,我们吧三个部分的值都拎出来了,现在,我们通过指数部分E的值来调整底数部分M的值。调整方法为:如果指数E为负数,底数的小数点向左移,如果指数E为正数,底数的小数点向右移。小数点移动的位数由指数E的绝对值决定。 这里,E为正3,使用向右移3为即得: 1100.10000000000000000000 至次,这个结果就是12.5的二进制浮点数,将他换算成10进制数就看到12.5了,如何转换,看下面: 小数点左边的1100 表示为 (1 × 23) + (1 × 22) + (0 × 21) + (0 × 20), 其结果为 12 。 小数点右边的 .100… 表示为 (1 × 2-1) + (0 × 2-2) + (0 × 2-3) + ... ,其结果为.5 。 以上二值的和为12.5, 由于S 为1,使用为负数,即-12.5 。 所以,16进制 0XC1480000 是浮点数 -12.5 。 上面是如何将计算机存储中的二进制数如何转换成实际浮点数,下面看下如何将一浮点数装换成计算机存储格式中的二进制数。 举例将17.625换算成 float型。 首先,将17.625换算成二进制位:10001.101 ( 0.625 = 0.5+0.125, 0.5即 1/2, 0.125即 1/8 如果 不会将小数部分转换成二进制,请参考其他书籍。) 再将 10001.101 向右移,直到小数点前只剩一位 成了 1.0001101 x 2的4次方 (因为右移了4位)。此时 我们的底数M和指数E就出来了: 底数部分M,因为小数点前必为1,所以IEEE规定只记录小数点后的就好,所以此处底数为 0001101 。 指数部分E,实际为4,但须加上127,固为131,即二进制数 10000011 符号部分S,由于是正数,所以S为0. 综上所述,17.625的 float 存储格式就是: 0 10000011 00011010000000000000000 转换成16进制:0x41 8D 00 00 所以,一看,还是占用了4个字节。
❾ 是不是一个字母或数字就占一字节int的4字节怎么来的
char字符型1个字节
int型4个字节(操作系统不同或编译器不同而不同,以前TC编译器里面int就是2个字节)
double型8个字节
还有计算机存储数值型数据分两种方式:
整形变量:将数值转换为二进制存储
实型变量:按存储浮点数的方式存储,具体存储方式网络
❿ 4个字节存储带符号的整数,写出所能存储的最大值和最小值(用次方形式表示),以及它们的内存存储形式。
经过上面分析,内存储器的划分可归纳如下:
●基本内存占据0~640KB地址空间。
●保留内存占据640KB~1024KB地址空间。分配给显示缓冲存储器、各适配卡上的ROM和系统ROM BIOS,剩余空间可作上位内存UMB。UMB的物理存储器取自物理扩展存储器。此范围的物理RAM可作为
内存
Shadow RAM使用。
●上位内存(UMB)利用保留内存中未分配使用的地址空间建立,其物理存储器由物理扩展存储器取得。UMB由EMS管理,其大小可由EMS驱动程序设定。