unsigned char 和 signed char 区别

申明本人初学,不懂就要问我看到2个表一个是signedchar等等有个就是在signedchar前面加了个un的加un和不加有什么区别吗?还有就是编成里面要用到英文的一写... 申明 本人初学,不懂就要问

我看到2个表 一个是signed char 等等 有个就是在signed char 前面加了个 un的 加un和不加有什么区别吗?

还有就是 编成里面要用到英文的 一写 语法... 嘿嘿 我能用拼音来代替么 我试过 的出的结果都一样..
主要是英语 没学习好...不想去背单词..每次学习编程还拿那本英语字典 一边写 一边找单词
展开
 我来答
兔丞飞
高粉答主

推荐于2019-10-04 · 专注娱乐 专注娱乐 专注娱乐
兔丞飞
采纳数:25 获赞数:19893

向TA提问 私信TA
展开全部

在C/C++中char型等价于整型数据,占一个字节,8个比特位。在语言中默认的就是signed char ,其范围

对应整数-128~+127,而unsigned char代表的是无符号的字符型,对应的整数范围为0~255.
例如:

#include<iostream>
using namespace std;

int main()
{
char ch='a';

cout<<(int)ch<<endl;
return 0;

}

输出的就是97,即小写字母a,对应的十进制数为97,A对应为65。

扩展资料

C++中,有3种不同的字符类型: 
char 

signed char 

unsigned char

如果用于文本,则使用未加限定的char, 类似于 'a', '0', 'abcde' 等。它也可以是一个值,但是是当做无符号还是有符号数没有指定。

如果将字符类型用作数字,那么:

signed char, 范围至少为 [-127 ~ 127] 。 (一般范围是 -128 到 127) 
unsigned char, 范围至少为 [0 ~ 255]。

说“至少”是因为C++标准只指定了对应每一种数据类型值的最小覆盖范围。

如果真的要表示小的整数的话,最好使用 int8_t 和 uint8_t 。

慎重还可靠灬宝贝f
推荐于2017-09-27 · TA获得超过12.9万个赞
知道大有可为答主
回答量:1.9万
采纳率:52%
帮助的人:2628万
展开全部

unsigned char 和 signed char 区别:


signed char取值范围是 -128 到 127
unsigned char 取值范围是 0 到 255

ANSI C 提ANSI C 提供了3种字符类型,分别是char、signed char、unsigned char
char相当于signed char或者unsigned char,但是这取决于编译器!

这三种字符类型都是按照1个字节存储的,可以保存256个不同的值。
不同的是取值范围
signed char取值范围是 -128 到 127
unsigned char 取值范围是 0 到 255
signed char的最高位为符号位,因此char能表示-128~127, unsigned char没有符号位,因此能表示0~255。


但是char究竟相当于signed char呢还是相当于unsigned char呢??
这就是char和int的不同之处!
int==signed int,但是char不能简单以为==signed char

要确定char究竟等同什么要基于不同的编译器做测试
大多数机器使用补码来存储整数,在这些机器中按照整数类型存储的-1的所有位均是1
假设我的机器也是如此存储,就能据此判断char究竟是等于signed char还是unsigned char
在实际使用过程种有什么区别呢?

主要是符号位,但是在普通的赋值,读写文件和网络字节流都没什么区别,反正就是一个字节,不管最高位是什么,最终的读取结果都一样,只是你怎么理解最高位而已,在屏幕上面的显示可能不一样。

但是我们却发现在表示byte时,都用unsigned char,这是因为byte没有符号位之说。

如果是char,那么系统认为最高位是符号位,而int可能是16或者32位,那么会对最高位进行扩展(注意,赋给unsigned int也会扩展),而如果是unsigned char,那么不会扩展。

这就是二者的最大区别。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luo6620378xu
推荐于2017-09-22 · TA获得超过906个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:271万
展开全部
我的回答只针对C/C++语言,不知道你学的是不是这两种语言。

在C/C++中char型等价于整型数据,占一个字节,8个比特位。在语言中默认的就是signed char ,其范围
对应整数-128~+127,而unsigned char代表的是无符号的字符型,对应的整数范围为0~255.
例如:
#include<iostream>
using namespace std;

int main()
{
char ch='a';

cout<<(int)ch<<endl;
return 0;

}

输出的就是97,即小写字母a,对应的十进制数为97.A对应为65.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沫神钢虚1F
2017-01-16 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:59%
帮助的人:1133万
展开全部
我的回答只针对C/C++语言,不知道你学的是不是这两种语言。 在C/C++中char型等价于整型数据,占一个字节,8个比特位。在语言中默认的就是signed char ,其范围 对应整数-128~+127,而unsigned char代表的是无符号的字符型,对应的整数范围为0~255. 例如: #include<iostream> using namespace std; int main() { char ch='a'; cout<<(int)ch<<endl; return 0; } 输出的就是97,即小写字母a,对应的十进制数为97.A对应为65.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者gnbUtHVVeI
2009-07-13 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:77.8万
展开全部
unsigned char 等同于 BYTE
signed char 等同于char
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式