Kir*_*ran 3 microcontroller integer processor microprocessors
8位,16位,32位处理器/微控制器中整数的大小是多少?我想这取决于内部累加器/寄存器大小.但不确定.谢谢
我只知道一种定义integer
数据类型的编程语言,但它很少用于8位和16位架构.C是用于编程8位,16位和32位架构的最广泛使用的语言,因此我假设您正在寻找C语境中的答案.
有几个"整数"数据类型在C: ,char
,short
,int
,long
等...,但我会假设你真正的意思是什么int
数据类型.
a的大小int
不是由体系结构定义的,它是由C编程语言规范定义的,而且非常模糊.
A""普通""
int
对象具有由执行环境(足够大以包含在范围内的任何值的体系结构建议的大小INT_MIN
,以INT_MAX
如在标头中定义<limits.h>
).
我解释这意味着它是由编译器的实现决定的.
您可以在此处找到最新公开版本的C11标准(在撰写本答案时):http://www.open-std.org/jtc1/sc22/wg14/www/standards.html.
以下是我跑来帮助回答这个问题的一些测试:
sizeof(int)
使用GCC 4.3.2编译时返回2(例如16位)(WinAVR 20081205)sizeof(int)
使用GCC 4.9.2编译时返回4(例如32位).sizeof(int)
无论是针对32位还是64位进行编译,都会返回4(例如32位).使用Visual Studio 2013和GCC 4.9.2进行测试.一个更有趣的答案是选择这些值的原因.
小智 0
整数可以是任意大小。处理器在这方面没有太多发言权。例如,在 Java 中,int = 32 位。在VB.NET中,存在Int16、Int32和Int64,而默认的Integer = 32位。