打印

关于数据类型的疑问?不能定义8位的数据类型?

[复制链接]
5131|12
手机看帖
扫描二维码
随时随地手机跟帖
沙发
computer00| | 2007-9-10 10:27 | 只看该作者

char

使用特权

评论回复
板凳
flylongins|  楼主 | 2007-9-10 10:44 | 只看该作者

char没用

char得到的变量值还是16位。
不信你试试。

使用特权

评论回复
地板
computer00| | 2007-9-10 10:47 | 只看该作者

没试过。那就加与操作。

使用特权

评论回复
5
flylongins|  楼主 | 2007-9-10 13:02 | 只看该作者

的确是可以这么做,我也是这么想的。

不过一直没有找到合理的解释。

使用特权

评论回复
6
computer00| | 2007-9-10 15:12 | 只看该作者

有些编译器char型的就是16bit的

使用特权

评论回复
7
wowow| | 2007-9-10 17:12 | 只看该作者

你用的是C54xx吧?

C54的char就是16bit的,只能读了再跟0x00FF相与。

Table 5-1. TMS320C54x C/C++ Data Types
Type Size Representation Minimum Value Maximum Value
signed char 16 bits ASCII -32 768 32 767
char, unsigned char 16 bits ASCII 0 65 535
short, signed short 16 bits 2s complement -32 768 32 767
unsigned short 16 bits Binary 0 65 535
int, signed int 16 bits 2s complement -32 768 32 767
unsigned int 16 bits Binary 0 65 535
long, signed long 32 bits 2s complement -2 147 483 648 2 147 483 647
unsigned long 32 bits Binary 0 4 294 967 295
enum 16 bits 2s complement -32 768 32 767
float 32 bits IEEE 32-bit 1.175 494e-38 3.40 282 346e+38
double 32 bits IEEE 32-bit 1.175 494e-38 3.40 282 346e+38
long double 32 bits IEEE 32-bit 1.175 494e-38 3.40 282 346e+38
pointers 16 bits Binary 0 0xFFFF

使用特权

评论回复
8
mybao| | 2007-9-10 17:20 | 只看该作者

长见识了

16bit的char

使用特权

评论回复
9
computer00| | 2007-9-10 20:05 | 只看该作者

铃羊61单片机的C编译器的char也是16bit的。

使用特权

评论回复
10
flylongins|  楼主 | 2007-9-10 20:38 | 只看该作者

回 wowow

我用的是F2812

使用特权

评论回复
11
jxf301| | 2007-9-14 20:32 | 只看该作者

只用低8位就可以了

28系列的char数据类型都是16位,可以当成8位来用,只用低8位,没有什么关系,只不过有点浪费,因为高8位没有用到。

使用特权

评论回复
12
tjsheep| | 2007-9-14 21:28 | 只看该作者

其实16位做8位运算是有问题的……

使用特权

评论回复
13
wwh| | 2007-9-16 10:38 | 只看该作者

只是提取低8位吗

 data & 0xff

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

135

帖子

0

粉丝