单片机:为什么C51中不大用int型数据,而大多使用char型

本人没有多少项目实战经验,现在在看网上的项目实践或杂志上的代码案例的时候,发现C51代码中很少用整型变量的,大部分都是使用的字符型变量。虽然我也知道int和char是等价的,但我弄不懂,照我的理解,从代码可读性来讲,整数变量就应该定义成整型的,为什么要定义成字符型呢?有什么说法吗?

二楼的也有说的不全的地方。
我继续补充。呵呵
51用char不是因为51ram少,是因为它是8位单片机,单字节处理会快些。
int的长度和程序的编译器有关,不同单品机的编译器依旧其单片机类型会调整int长度,所以short才是真正意义上的16位。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-08
一楼的也有说错的
char是一个字节没错
可是int就多了,在430中2个字节,在arm中4个字节,甚至还有处理器是8个字节的
所以定义int型的最好不用,而用short定义2个字节,long定义4个字节.
51中的ram比较少,所以尽量用char型的,还有更重要的是51对char型操作最快.
但是在一些arm中,就没有必要那样计较了,我基本都用int型的
-------------------
3楼的,我的那个更重要的后面的话已经说了,呵呵.
第2个回答  2009-04-08
int 和 char 怎么能是等价的呢?
int俩个字节
char一个字节
定义变量类型够用就行,多了浪费本来就不富裕的存储空间。本回答被提问者采纳

单片机:为什么C51中不大用int型数据,而大多使用char型
51用char不是因为51ram少,是因为它是8位单片机,单字节处理会快些。int的长度和程序的编译器有关,不同单品机的编译器依旧其单片机类型会调整int长度,所以short才是真正意义上的16位。

为什么C51常用unsigned char而不用unsigned int
一个最主要的原因就是51单片机大多都内存比较小,使用char比int占用内存小,而且51是8位单片机,在数据未溢出的情况下,使用8位数据比16位数据速度更快!

...数据类型?而且还用它来保持整数,为什么不使用int 来保存整数呢_百度...
因为单片机的内存小, unsigned char是一个字节,int比前者占空间大,而很多情况下,一个字节来定义变量已经足够使用,比如只要变量大小在0~255之间时,用unsigned char占一个字节,用int虽然也可以囊括0~255,但是占的内存空间就很大。为了节约内存,所以就经常使用unsigned char ...

单片机c语言char和int什么区别啊?
因此,char和int的区别主要在于数据范围和作用。在单片机C语言中,char类型通常用于存储字符型数据,而int类型则用于存储整型数据。需要注意的是,char类型的变量可以通过强制类型转换(如(int)ch)转换为int类型的变量,但可能会导致数据精度的损失。

为什么单片机中,char 也可以用来存储数字? 那么它和int 有什么不同呢...
char是字符型,可是字符在计算机内部同样是用二进制数表示的,因此,从这个意义上讲字符也好,数字也好,一律是用二进制数表示的。单片机也是计算机一类。在单片机编程中(指Keil C)经常会用到char定义变量,目的是为了用8位二进制数,只用一个RAM存储单元就够了,这样可以节省内部RAM。用int定义变量是16...

单片机C语言里面char与int区别是什么
int是整型变量,用来申请整型数据,或者整形数据指针 单片机的C语言和普通C语言语法是一模一样的,但是细节上有些差异,,都是char占用一个字节内存,但int占用2字节内存。所以C++程序员做单片机开发也是没有太大的障碍的,毕竟有很多规则是一样的。还有,最重要的:单片机的存储器很小,尽量不要浪费空间...

单片机int型变量不够用
字符不够。char是一个字节没错可是int就多了,在430中2个字节,在arm中4个字节,甚至还有处理器是8个字节的所以定义int型的最好不用,而用short定义2个字节,long定义4个字节,51中的ram比较少,所以尽量用char型的,还有更重要的是51对char型操作最快,但是在一些arm中,就没有必要那样计较了,...

在51单片机中,不同类型的数之间能相互赋值吗?它们的指针呢,能相互交换...
不同类型之间是不能直接赋值的,要经过类型的强制转换:int型占4个字节,char型占1个字节,小的给大的类型一般的编译器是可以通过的,但大的给小的你就要指明了 举个例子:int a=2;char b=5;a = b; \/*这种操作一般是允许的*\/ b = (char)a; \/*这需要类型转换*\/ ...

为什么计算机中int占2个字节,而char占4
这和操作系统的位数有关,一个int的大小是操作系统的一个字长。TC是16位系统程序,所以int是16bit就是两个字节。在32位linux和32位Windows下,都是4个字节,也就是目前最常用的VC和gcc结果。依据程序编译器的不同,int定义的字节数不同。常用的单片机编译器,如KEIL下,51类单片机的C语言中,int...

51单片机 ,为什么num我用unsigned char型就出错,一烧入程序蜂鸣器就响...
char是字符型变量,而延时或者是循环里需要的是INT整型变量,unsigned char范围为0~255,估计是超范围了,还是用int保险

相似回答