(7)32/64位机器中,各数据类型所占位数的区别

  • 在32位机器和64机器中int类型都占用4个字节。编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。这即是说各个类型的变量长度是由编译器来决定的,而当前主流的编译器中一般是32位机器和64位机器中int型都是4个字节(例如,GCC)。下面列举在GCC编译器下32位机器和64位机器各个类型变量所占字节数:
 C类型32位64位取值范围
char11–128 ~ 127
short int22 –32,768 ~ 32,767
int44由操作系统决定,现常见为4字节 (32bit)  即-2,147,483,648 ~ 2,147,483,647 (10位数)
long int48–2,147,483,648 ~ 2,147,483,647 (10位数)
long long int88–9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (19位数)
char*(指针)48-
float443.4E +/- 38 (7 digits)
double881.7E +/- 308 (15 digits)

指针类型存储的是所指向变量的地址,所以32位机器只需要32bit,而64位机器需要64bit。

一条指令的长度是指该指令占用的存储空间大小。在传统的计算机系统,指令长度是固定的,通常为固定字长(例如32位64位)。但在一些现代的计算机系统,指令长度可以是可变的,如可变指令长度架构(Variable instruction length architecture)。 操作码是指一条指令用来标识操作类型的部分,也称为操作码字段。它指示了要执行的具体操作,如加法、乘法、移位等。操作码的位取决于所支持的操作种类的量。通常情况下,操作码占据指令的前几位。 指令所表示的操作类型与操作码有关,操作类型包括算术运算、逻辑运算、据传输等。不同操作类型在操作码有其相应的编码方式。例如,如果操作码的二进制形式以"0000"开头,表示该指令是算术运算指令。操作类型通常与计算机体系结构相关联。 地址码是指令包含的指示操作的地址的部分。地址码的格式取决于指令的寻址方式和据宽度等因素。常见的指令格式包括立即寻址、直接寻址、间接寻址、寄存器寻址、索引寻址等。对于每种寻址方式,地址码的位和表示方式都有所不同。 与C语言相关的是,在C语言,编写的程序需要经过编译(compile)成为机器语言的指令,计算机可以理解和执行。C语言的各种语法结构和语句会被翻译成相应的机器指令,指令的长度、操作码和操作类型等与C语言编译器和计算机体系结构相关。因此,了解指令的基本概念和相关概念对于理解计算机的工作原理以及相关编程语言非常重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值