51单片机中C语言int能转换为unsigned char 指针类型吗?怎么转换?

如题所述

1、可以转换,强制转换就行。例如:
int a=100;
unsigned char * c = (unsigned char *)a;
2、强制类型转换
当操作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将操作数转化为所需要的类型。强制类型转换具有两种形式,称为显式强制转换和隐式强制类型转换。
显式强制类型转换
显式强制类型转换需要使用强制类型转换运算符,格式如下:
type(<expression>)

(type)<expression>
其中,type为类型描述符,如int,float等。<expression>为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:
int nVar=0xab65;
char cChar=char (nVar);
上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-31
可以呀,将高位和地位分别赋值给两个char变量就可以了。例如:
int x;
unsigned char al,ah;
al=x%256;
ah=x/256;本回答被网友采纳
第2个回答  2013-02-03
可以,就是拿这个int当成指向unsigned char的指针地址,举例如下:
int x;
unsigned char c;
c=*((unsigned char *)x); //读取x地址指向的字符
第3个回答  2013-01-30
要看什么样的单片机。如果要转换的话,可以如下:
int a=0x5bce;
unsigned char *p;
p = (unsigned char *)a;

要看你的ram和rom是多大的,有些是单个字节,那转换完,可能会丢掉高位的。就是说0x5b会不见了,只剩下个0xce;注意点使用。
希望我的回答对你有帮助,有什么问题欢迎一起探讨。
第4个回答  2013-01-31
可以,直接使用就好了。
unsigned char a;
int addr;
a=(unsigned char *)addr;

51单片机中C语言int能转换为unsigned char 指针类型吗?怎么转换?
1、可以转换,强制转换就行。例如:int a=100;unsigned char * c = (unsigned char *)a;2、强制类型转换 当操作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将操作数转化为所需要的类型。强制类型转换具有两种形式,称为显式强制转换和隐式强制类型转换。显式强制类型转换 显式...

51单片机中C语言int能转换为字符串类型吗?怎么转换?
因为是C51, 所以不能用 VC++里面的C语言代码 eg: itoa, 也不要用打印的 eg: sprintf 为什么? 因为C51的内存太小 ,如果这样用非常占用资源. 下面的朋友回答就显得不够专业了.所以, 一般我们是这样自己写代码使用实现的: 字符串改为数组的形式 unsigned char dat[5];dat[4]=Num\/10000+'0';...

51\/52单片机 keil C语言 字符转数字
int number = a - '0';这样number中就存的是数字9.第一种情况,如果你的字符串是存在char *s中,像这样:char *s = "5670";这样,第一个字符就是 char a = *s;int number1 = a - '0'; \/\/这里number1中存的就是数字5 同理,再接着写 a = *(++s);int number2 = a - '0'...

51单片机 字符数组转字符串或uint转uchar
51单片机制服组字符串成这个是什么这个是串成要问一下明白的人吧音乐音乐方面

悬赏80! 写个C51单片机程序,能将int变量转为bit变量
比如我们平时说的数值65535,二进制就是1111 1111 1111 1111,即0xFFFF,在单片机中用两个字节存储,高字节内容是1111 1111或0xFF,低字节是1111 1111或0xFF,所以你要“十进制”转“二进制”只是多此一举。在编译器中我们用十进制方式来表示一个数字,比如你的程序中的定义的数字32769,你要知道这...

c51支持哪些数据类型?混合运算时候,类型转换顺序?
unsigned long)7. 浮点数类型(float)8. 双精度浮点数类型(double)此外,针对单片机,C51还提供了:9. 位类型(bit)10. 符号位类型(sbit)在混合运算时,不同数据类型的编译器在类型转换的顺序上可能会有所不同。为了确保运算结果的正确性,建议在运算前将数据预先转换为相同类型。

在c语言中int long unsigned 和 char这四种类型数据的转换规律是什么...
但是不能理解为:先将char转换成int,再转换成unsigned,再转换成long。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序...

51单片机数据类型转换 高分!
); RecvData((unsigned char*)&i, sizeof(int)); RecvData((unsigned char*)&d, sizeof(double));}宗旨就是,先取其他类型数据的地址,用&符号,然后把地址转换为unsigned char*型,就可以通过*(unsigned char)的方式或(unsigned char)[]的方式访问了,就这么简单,希望可以帮到你....

关于51单片机类型转换的,用keil编程,貌似不能把 unsigned char...
没关系,在很多情况下,编译警告并不影响程序的运行。51中,将一个字节的unsigned char 变量,赋值给2个字节的unsigned int,编译提示“warning"是正常的,但如果将小数变量赋值给整数、或将int赋值给char的警告,就得适当关注一下,因为此时,有丢失精度的风险。更多交流,请访问我空间。

单片机中unsigned char 和unsigned int的区别
首先看int和char,分别是整型数据和字符型数据,在计算机里面分别占1个和2个字节空间(TC环境),不同的环境占得字节数可能不同;unsigned int是一个无符号整型数据,而unsigned char则是无符号字符型数据,他们在计算机里所占字节数和int,char完全一样;区别在于unsigned int 与int ( = signed int)型...

相似回答