社区
C语言
帖子详情
char z = 500的输出
Himmel
2003-10-21 02:19:44
char z = 500;
cout<<z;
为什么输出的是ASCII Code里10进制数是20的那个符号?
请高手解答
谢谢!!
...全文
162
9
打赏
收藏
char z = 500的输出
char z = 500; cout<<z; 为什么输出的是ASCII Code里10进制数是20的那个符号? 请高手解答 谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vico2
2003-10-21
打赏
举报
回复
主要是明白道理!
tibetan
2003-10-21
打赏
举报
回复
上面有点小错误,(应该是用的表里有的是128个值,有的是256,最大值是127/255)不好意思。
tibetan
2003-10-21
打赏
举报
回复
字符8位,范围应该是-128--127(2^8-1)才对,但这也不完全真确。因为不同的系统或许不一样,有的系统是把字符类型当作无符号的数来对待,所以就应该是0--2^8-1(255)。你能看到在ASCII 表里有的是127个值,有的是255个值。就是因为对待不同。不过127个是国际标准的,255的是扩展码的。正如 kissme1943(jjj) 所说的,如果任何类型的值超出起取值范围的时候就会循环取值。从你反映的问题来看,你的系统应该是当作无符号类型对待。
看:10+245=255 //也就是到了最后取值范围的值,应该从0取值,循环开始第一次。
245+255=500//总共等于500。可以看出其值刚好是10,我是反推的。
希望你有好运气。不过我不知道你为什么这么做?
njuhuangmy
2003-10-21
打赏
举报
回复
500 化成 16 进制 是 1f4
而变成字符型取 最低位 f4
bestfyj
2003-10-21
打赏
举报
回复
char为8bit,所以其取值范围为 -127~128
程序中z的取值超出了这个范围,所以会出现不一致
你可以用int z=500
ok,wish u happy
kissme1943
2003-10-21
打赏
举报
回复
因为是char型,char 和int会自动转换的,超过范围会循环
char型的范围是-128 到 127 所以 char z = 128 和 char z = -128 输出是一样的
char z = 129 和 char z = -127 输出是一样的
128+256 = 384 char z = 128+256 和 char z = 128 输出是一样的
500 = 256 + 244 char z = 500 和 char z = 244 输出是一样的
500 = 256 + 127 + 117 117 - 128 = 12 char z = 500 和 char z = -12 是一样的
我试了试 和ASCII Code里10进制数是20的那个符号 不一样
arvid_gs
2003-10-21
打赏
举报
回复
ASCII表的转换是系统编译的时候自动运行的。
Himmel
2003-10-21
打赏
举报
回复
500到-12的问题我已经搞明白了 谢谢kissme1943(jjj)
可是我不明白系统是怎么把-12转化成ASCII表里的符号的
谢谢回答
Himmel
2003-10-21
打赏
举报
回复
我在win98下的borland c++ 5.02中运行结果确实是和ASCII里10(d)的那个符号是一样的
但是我在xp下的borland c++5.02中结果是不显示任何东西 compiler提示lose digital
我觉得也许是和操作系统也有关系.
回tibetan我这么做是因为学校里的练习题老师无法解答为什么会出现这个符号
C语言中字符型(
char
)的简单使用
C语言中字符型(
char
)的简单使用 刚接触C语言不久,在这记录下自己的一些学习心得。今天主要是在敲代码时遇到了一个小问题,如图: 应该是个比较简单的编程题。在我的想法中,应该使用循环逐个读入由A至Z的每个字母,因此要用
char
定义字符。先前也简单了解过
char
的用法,也仅局限于单个字符的用法,大概只知道以下几种: 1.
char
的简介 (1)字符型(
char
)用于储存字符(
char
acter),如英文字母、数字或标点。 简单来说有以下几种形式: 1.
char
a='a'; 2.
char
b='1'
char
类型
1.
char
char
char
f = 'a';
char
char
h = '杨'; //warning:初始化”: 从“int”到“
char
”截断 //
char
char
z = "b"; //“初始化”: 无法从“const
char
[2]”转换为“
char
” //
char
char
q = "sdfgd";//error C2440: “初始化”: 无法从“const ch
c语言
char
类型计算,
char
类型值的算术运算
以下程序演示了如何使用已初始化的
char
类型变量执行算术运算。main()正文中的前三个语句如下:
char
first = 'A';
char
second = 'B';
char
last = 'Z';下一个语句使用整数值来初始化
char
类型的变量:
char
number = 40;初始化值必须在单字节变量可以存储的值范围内。接下来的三个语句声明了另外三个
char
类型的变量:
char
ex1 = f...
char
数据cout
输出
的一些问题。
1、在C++中常用的是利用cout进行数据
输出
,但是需要注意的是:在使用cout将数据打印出来的时候,
char
和unsigned
char
数据打印出来的是其相应的ASCII码,不是相关的数值。 unsigned
char
a=80;
char
b = 80; cout //打印字母P cout //打印字母P 2、ASCII码表常用的相关部分 1)ASCII码打印字符:十进制 32
C语言
char
类型及其类型转换的变化
char
类型 首先我们要知道
char
类型为一个字节。 而且要知道他在计算机中的储存方式。 一个字节8个bite,int类型32bite,0x00 00 00 01刚好没量为数为一个字节,这正是内存的储存方式 例如
char
a=5;//a=0000 0101 正数的源码补码反码相同
char
b=-5;// b=1000 0101(源码)-》1111 1011(补码) int x=(int)a...
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章