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/C++】char 与 unsigned char的本质区别

 在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别  首先在内存中,char与unsigned char...
  • SMF0504
  • SMF0504
  • 2017年06月01日 15:33
  • 540

char与signed char, unsigned char的区别?

一、问题的提出 今天有一个困扰的问题,就是char与signed char, unsigned char这三者的区别。 二、三者之间关系 1.ANSI C 提供了3种字符类型,分别是char、sign...
  • sinat_20265495
  • sinat_20265495
  • 2016年06月22日 11:35
  • 19925

c语言中 char* 和 unsigned char* 的区别浅析

背景最近在项目中遇到了一个编译警告,是因为定义的变量为char[],而在使用时作为函数的unsigned char*类型的参数调用。这个警告很容易避免,但是char*和unsigned char*到底...
  • guotianqing
  • guotianqing
  • 2017年08月17日 21:43
  • 969

【转】vC++中 char 与 unsigned char(BYTE)的具体区别

http://zhongliyuan88.blog.163.com/blog/static/793788192008923113528787/ vC++中 char 与 unsigned char(B...
  • qp314
  • qp314
  • 2011年04月15日 12:10
  • 5375

该使用char还是unsigned char

这个问题似乎很简单,要表示8位无符号数值的时候,用unsigned char,要表示8位有符号数值或者ASCII字符的时候,用char。但是,有的时候会遇到这样一种情况,从一串字符串中取出的字符,既有...
  • lfw19891101
  • lfw19891101
  • 2011年07月25日 11:29
  • 7212

signed char 和unsigned char 区别

一:signed char 和unsigned char 的取值范围 Char和int 一样,都有有符号和无符号之说。即unsigned char和signed char。 ...
  • mianhuantang848989
  • mianhuantang848989
  • 2015年01月19日 14:18
  • 1340

CString转为unsigned char

CString转为unsigned char , 平台vs2008(vc9),在mfc工程中经常要遇到CString转为unsigned char问题。 CString转unsigned char ...
  • nemo2011
  • nemo2011
  • 2013年04月10日 10:46
  • 5618

MFC下unsigned char和Cstring的转换

CString无论是CStringA还是CStringW,其构造函数或者等号都能完美就收unsigned char类型! unsigned char *st = “12345”; CString ...
  • yal179
  • yal179
  • 2014年05月29日 14:56
  • 1436

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

http://bbs.csdn.net/topics/390184854 C/C++ code ? 1 2 3 4 5 ...
  • mydriverc2
  • mydriverc2
  • 2015年07月10日 08:57
  • 3002

关于unsigned char和signed char的问题

unsigned char与char的区别2007-10-18 11:24 Character value...
  • zhongrg
  • zhongrg
  • 2007年11月11日 20:09
  • 8758
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:char 与 unsigned char的区别
举报原因:
原因补充:

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