社区
C语言
帖子详情
C语言里字符的问题
tom555cat
2012-02-04 09:09:09
char c1;
c1=100011;
printf("%d",c1);
打印结果为-85
c1=1011;
printf("%d",c1);
打印结果为-13
这里-85,-13是什么东西
...全文
75
6
打赏
收藏
C语言里字符的问题
char c1; c1=100011; printf("%d",c1); 打印结果为-85 c1=1011; printf("%d",c1); 打印结果为-13 这里-85,-13是什么东西
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
孤独小剑
2012-02-04
打赏
举报
回复
c1是char而100011和1011都是整形,所以赋值的时候自动舍掉高位只留最后八位的值,你把1011改为1024那c1就是0,赋值1026那c1就是2。
jicongyue123
2012-02-04
打赏
举报
回复
个人理解:我就讲第二个输出为什么会是-13,首先在c语言中1011默认为整型(占四个字节),而c1声明为char(占1个字节),1011的二进制表示为:00000000 00000000 00000011 11110011,当把int型1011赋值给char型c1时,会发生截断,也就是只把最后一个字节赋值给c1即:11110011,这个二进制在计算机里为补码,因为最高位为1,所以表示复数,现在转换成源码为(除最高位,其余取反然后加1)10001101,这个二进制数的最高位为1代表复数,其余7为换算成10进制为13,所以结果为-13.
面包大师
2012-02-04
打赏
举报
回复
1011是十进制,对应的二进制是0000 0000 0000 0000 0000 0011 1111 0011
当你将十进制的1011赋值给char c1时,只是将他的低八位赋值给了c1,即c1的二进制表示就是
1111 0011,当你用%d打印的时候,要打印的十进制,是32位,打印的时候就会把高位补足,补足的方式是重复最高一位1,所以就变成了1111 1111 1111 1111 1111 1111 1111 0011,就变成了-13
-85类似。。。
yunwuxin009
2012-02-04
打赏
举报
回复
范围超了吧
lee_鹿游原
2012-02-04
打赏
举报
回复
[Quote=引用 1 楼 sagegz 的回复:]
char类型的范围是-128~127。在内存中以8位补码形式存放。
1011在内存中是
0000 0011 1111 0011
截断,保留低位
所以在内存中是1111 0011
对应的原码就是-13
前面的类似。
[/Quote]
++
sagegz
2012-02-04
打赏
举报
回复
char类型的范围是-128~127。在内存中以8位补码形式存放。
1011在内存中是
0000 0011 1111 0011
截断,保留低位
所以在内存中是1111 0011
对应的原码就是-13
前面的类似。
C语言
系列之
字符
串相关算法
尹成老师带你步入 C 语言的殿堂,讲课生动风趣、深入浅出,全套视频内容充实,整个教程以 C 语言为核心,完整精彩的演练了数据结构、算法、设计模式、数据库、大数据高并发检索、文件重定向、多线程同步、进程通讯、...
(一)
C语言
的
字符
一、
C语言
的
字符
1.
C语言
不存在
字符
串类型
C语言
有
字符
类型,也就是char类型,char类型的数据占内存大小为1字节。
C语言
中不存在
字符
串类型! 2.
C语言
涉及的常见
字符
集
字符
是一种图形符号,不同国家不同地区...
C语言
获取
字符
串长度的几种方法
在
C语言
中,想要获取
字符
串长度可以有很多方法,下面分别介绍 一、使用sizeof()运算符 在
C语言
中,sizeof() 是长度的运算符,括号中可以放入数据类型或者表达式,一般我们用来计算
字符
串长度。 基本用法: int i=10;...
C语言
的
字符
串数组
在
C语言
当中,
字符
串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个
字符
串的最大大小。第二种没有
字符
串的大小限制。 #include <stdio.h> #include <string....
C语言
字符
和
字符
串的输入与输出
C语言
scanf输入时缓冲区
问题
scanf函数是标准输入流(从键盘接收数据),接收的数据放入输入缓冲区中,其中就包括在键盘输入的空格、回车这类
字符
,当你用%d接收时是不会影响的,但是用%c就会产生错误,这是因为在"%c...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章