| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 426 人关注过本帖
标题:怎么把unsigned char的值赋给char
只看楼主 加入收藏
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
结帖率:91.43%
收藏
已结贴  问题点数:20 回复次数:8 
怎么把unsigned char的值赋给char
char key_01[8];
unsigned char key_1[8];
for(i=0;i<8;i++)
key_01[i]=(char)key_1;
图片附件: 游客没有浏览图片的权限,请 登录注册


这么赋值总会出现负值,而且对负值的char型用abs也不会变,还是负的
2013-11-06 15:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:7 
想一下,比如 unsigned char(162),你想让它变成signed char的什么值呢?
2013-11-06 16:02
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:7 
char 能存储的最大正整数是127,大于127小于255就是负数,
而且对负值的char型用abs也不会变  要看你的代码
2013-11-06 16:07
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:7 
楼主, 你不是要告诉我,
你的unsigned char key_1[8]没有初始化吧??
2013-11-06 17:15
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 2楼 rjsp
不改变,就是162,但是有时候会出现-94,有时候是162
2013-11-06 20:16
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 4楼 pangshch
我试过,初始化0x00和没初始化一样,没有区别
2013-11-06 20:17
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 3楼 heroinearth
代码就是上面那一小段赋值语句。
能解释一下为什么用abs不会变好吗?
2013-11-06 20:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
回复 5楼 lyl930130
unsigned char 值范围是 0 - 255
signed char 值范围是 -128 - 127
char 等效于unsigned char还是等效于signed char,由编译器自己决定。
(注:虽然等效于其中一个,但仍然属于三种独立的类型)
2013-11-07 09:37
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
赋的值只要大于127就会出现负值了,
用abs()的话这样用:

for (i = 0; i < 8; i++)
        a[i] =abs((char)b[i]);
2013-11-08 09:49
快速回复:怎么把unsigned char的值赋给char
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019092 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved