在C51的数据类型[1]中,unsigned char型的值域为0~65535。( )
题目解答
答案
错误
解析
本题考查C51数据类型中unsigned char型值域的知识点。解题思路是明确unsigned char型在C51中的定义,根据其定义来确定其值域范围,再再与与题目中所给的值域进行对比判断对错。
在C51中,unsigned char表示无符号类型,char类型通常占用1个字节(8位)的存储空间。对于无符号的8位数据类型,其能表示的最小数是所有位都为0,即$0_{(10)}$;能表示的最大数是所有位都为1,根据二进制转十进制的公式$N=\sum_{i = 0}^{n - 1}a_{i}\times2^{i}$(其中a_{i}为二进制位上的数字,n为二进制位数)}$,8位全为1时,其十进制值为:
$\begin{align*}&1\times2^{7}+1\times2^{6}+1\times2^{5}+1\times2^{4}+1\times2^{3}+1\times2^{2}+1\times2^{1}+1\times2^{0}\\=&128 + 64+32 +16+8+4+2+1\\=&255\end{align*}$
所以unsigned char型的值域是0~255,而题目中说unsigned char型的值域为0~65535,65535是unsigned int(通常为16位)类型能表示的最大值,所以该说法错误。
本题考查C51数据类型中unsigned char型值域的知识点。解题思路是明确unsigned char型在C51中的定义,根据其定义确定值域范围,再与题目所给值域对比判断对错。
在C51中,unsigned表示无符号类型,char类型通常占用1个字节(8位)存储空间。对于无符号的8位数据类型,能表示的最小数是所有位都为0,即$0_{(10)}$;能表示的最大数所有位都为1,根据二进制转十进制公式$N=\sum_{i = 0}^{n - 1}a_{i}\times2^{i}$(其中$a_{i}$为二进制位上的数字,$n$二进制位数),8位全为1时,其十进制值为
$\begin{align*}&1\times2^{7}+1\times2^{6}+1\times2^{5}+1\times2^{4}+1\times2^{3}+1\times2^{2}+1\times2^{1}+1\times2^{0}\\=&128 + 64+32+16+8+4+2+1\\=&255\end{align*}$
unsigned char型的值域是0~255,而题目中说unsigned char型的值域为0~65535,65535是`unsigned int(通常为16位)类型能表示的最大值,所以该说法错误。