char 与 unsigned char的区别

转载 2015年07月09日 17:18:52
在数据类型转换时有区别:
如果是char,系统认为最高位是符号位,那么将对最高位进行拓展
如果是unsigned char,系统认为没有符号位,不会对最高位拓展。
    对最高位拓展是什么意思呢?char在C里占一个字节,比如0x80的一个char,二进制为1000 0000,如果转为int则,认为最高位的1是符号位,int是4个字节,剩下的3个怎么办呢,肯定得填充了,系统会在前面填充。如果最高位是符号位,那么系统会在前面填充3个字节的符号位(这和计算机里头数值用补码表示有关,比如0x80的一个char,1000 0000,表示-128,转为int类型时,我们还是希望是-128,此时系统会在前三个字节里全部填充符号位1,变成1111 1111,1111 1111,1111 1111,1000 000。这个数在计算机里还是表示-128。
    如果一个0x80的unsigned char,二进制也是1000 0000,由于是无符号型(只能表示正数),系统认为该数最高位不是符号是数,所以系统认为所表示的值是128,若转为int型,系统会在前三个字节填充0,变成
0000 0000,0000 0000,0000 0000,1000 000。这个数在计算机int里还是表示128。

注意:赋给unsigned int也会扩展。

C语言中关于char类型存储的分析 以及signed与unsigned的区别

1==》char和signed char 大家对char类型相信一定不会陌生的ANSI C 提供了3种字符类型,分别是char、signed char、unsigned char char相当...
  • Dawn_sf
  • Dawn_sf
  • 2017年01月16日 15:50
  • 922

C语言中unsigned char* 与char*的区别?

http://bbs.csdn.net/topics/390184854 C/C++ code ? 1 2 3 4 5 ...

原码、补码说明以及char和unsigned char区别--最终版

0、 原码、补码(以及反码)这些概念都是对整数而言的,即原码、补码所表示的实际数值都是整数。而对实数(即带有小数点的数值,如5.0,,5.5)而言,是没有原码、补码(以及反码)这些概念的,即实数不能用...
  • haiross
  • haiross
  • 2015年05月20日 17:07
  • 890

char与unsigned char本质区别

在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别。 首先在内存中,char与unsigned char没有什么...

unsigned char和signed char型变量的区别,赋值后它在内存中的存储形式

原文地址:http://blog.csdn.net/suxinpingtao51/article/details/17759807 在C中,默认的基础数据类型均为signed,现...

unsigned char和signed char型变量的区别,赋值后它在内存中的存储形式

原文链接:点击打开链接 在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别  ...

原码、补码说明以及char和unsigned char区别--中间版

0、 原码、补码(以及反码)这些概念都是对整数而言的,即原码、补码所表示的实际数值都是整数。而对实数(即带有小数点的数值,如5.0,,5.5)而言,是没有原码、补码(以及反码)这些概念的,即实数不能用...
  • haiross
  • haiross
  • 2015年05月20日 10:39
  • 1120

原码、补码说明以及char和unsigned char区别--初稿

原码、补码说明以及char和unsigned char区别 0、 原码、补码(以及反码)这些概念都是对整数而言的,即原码、补码所表示的实际数值都是整数。而对实数(即带有小数点的数值,如5....
  • haiross
  • haiross
  • 2015年05月20日 17:09
  • 529

char 与 unsigned char的本质区别

char 与 unsigned char的本质区别 在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别 首先在...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:char 与 unsigned char的区别
举报原因:
原因补充:

(最多只允许输入30个字)