为什么在C语言中字符也有有符号类型?

computerclass 2007-08-19 07:35:37
unsigned signed
...全文
460 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐巧 2007-08-21
  • 打赏
  • 举报
回复
怎样实现把一个整型数按顺序放在一个字符数组中,比如:int x = 2008; 那么放在字符数组
中的就是'2'、'0'、'0'、'8'。
====================================

sprintf就可以很方便的转换,也可以用itoa函数
唐巧 2007-08-20
  • 打赏
  • 举报
回复
我想楼主主要是想问既然字符都是正的,那为什么char型会允许负数存在,为什么还要加上unsigned才能表示只能为正的字符?

我是这么理解的,因为在C语言里面,所有的类型:int , float, double, byte都是带符号的,如果突然出现一个char 型不带符号,不带不利于它的表示,而且也很容易让人误解.所以就干脆让它也可以带符号.然后统一的,如果不想带符号就加上unsigned.

这样语言风格的规则很统一,便于用户习惯.也防止由于记错而发生的错误.
gfxiang 2007-08-20
  • 打赏
  • 举报
回复
ls的自己开个新帖子
luoding008 2007-08-20
  • 打赏
  • 举报
回复
麻烦下,我一直有个问题不能解决,大家可以共同讨论下:
怎样实现把一个整型数按顺序放在一个字符数组中,比如:int x = 2008; 那么放在字符数组
中的就是'2'、'0'、'0'、'8'。
注意:0、要按照顺序
1、整数是未知的,可能是429596123,也可能是1或者0。
2、不许使用任何库函数,除main()外。

如果是个float类型,怎么做。
iambic 2007-08-20
  • 打赏
  • 举报
回复
C++标准没规定char是8bits。
xiayu0912 2007-08-20
  • 打赏
  • 举报
回复
Kenmark(fenix) ( ) 信誉:100
"char严格来说,应该叫做byte类型(c语言并不提供byte类型)。"
错!

----------------------------------------
char代表一个字节=8bit,不能代表byte类型吗?
louzl 2007-08-20
  • 打赏
  • 举报
回复
char 是指character(字符)
我啃 2007-08-20
  • 打赏
  • 举报
回复
"char严格来说,应该叫做byte类型(c语言并不提供byte类型)。"
错!
Stevetan81 2007-08-20
  • 打赏
  • 举报
回复
我的理解是,char严格来说,应该叫做byte类型(c语言并不提供byte类型)。
代表一个字节。只是不知道为什么把名字叫做char了,也许是最早用于ascii码的表示吧(我猜的)
gfxiang 2007-08-19
  • 打赏
  • 举报
回复
C语言就是这样设计的,最高位可以作为符号位(signed),也可以不当符号位解释(unsigned)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧