社区
C语言
帖子详情
关于char类型长度的疑问
chengdulang
2010-11-24 04:47:22
使用TC2.0
申明unsigned char a = 0
然后取反 a = ~a
输出printf("%x",a)
结果是ff。这个很容易理解
但是char a = 0
取反后用printf("%x",a)出结果是ffff.char怎么变成2个字节了。
盼望大家给我解释下。
...全文
151
11
打赏
收藏
关于char类型长度的疑问
使用TC2.0 申明unsigned char a = 0 然后取反 a = ~a 输出printf("%x",a) 结果是ff。这个很容易理解 但是char a = 0 取反后用printf("%x",a)出结果是ffff.char怎么变成2个字节了。 盼望大家给我解释下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chengdulang
2010-11-24
打赏
举报
回复
[Quote=引用 9 楼 xiaoyuer5222 的回复:]
你试一下你的系统上sizeof(int)是多少,按照你上面的推测应该是2
如果是2的话,就对了
char a = 0;
a=~a=11111111; //最高位1位符号位,表示负
printf时会先将a进行整数提升为int,高8位会补符号位1,则11111111 11111111
[/Quote]
确实是printf的问题。我看了下函数的原型。printf 输出的是int。
iq02006
2010-11-24
打赏
举报
回复
c++primer上说 char有3中类型,char,unsigned char signed char,char 是什么类型由编译器决定,上面还说了,用char 型计算会出现一些不可预知的问题。
xiaoyuer5222
2010-11-24
打赏
举报
回复
你试一下你的系统上sizeof(int)是多少,按照你上面的推测应该是2
如果是2的话,就对了
char a = 0;
a=~a=11111111; //最高位1位符号位,表示负
printf时会先将a进行整数提升为int,高8位会补符号位1,则11111111 11111111
chengdulang
2010-11-24
打赏
举报
回复
[Quote=引用 7 楼 try325 的回复:]
printf("%x",a)的结果
[/Quote]
为什么申明成unsigned char就是FF?
try325
2010-11-24
打赏
举报
回复
printf
("%x
",a)的结果
chengdulang
2010-11-24
打赏
举报
回复
[Quote=引用 5 楼 wq294948004 的回复:]
不知道问什么哦。
我做了测试,char,不一定是FFFF,我这是FFFFFFFF,根据机器位数的。
[/Quote]
都给你说了的嘛。我用的TC2.0。我用Gcc还是FFFFFFFF
wq294948004
2010-11-24
打赏
举报
回复
不知道问什么哦。
我做了测试,char,不一定是FFFF,我这是FFFFFFFF,根据机器位数的。
sewinten
2010-11-24
打赏
举报
回复
不明真相,坐等解释
chengdulang
2010-11-24
打赏
举报
回复
[Quote=引用 1 楼 try325 的回复:]
char的长度是1个字节
[/Quote]
。。。。。。。。。。。。我就是知道是1字节才请问你为什是4个FFFF不是2个。
try325
2010-11-24
打赏
举报
回复
char的长度是1个字节
大智慧股票本地数据读取接口(含源码)
字段名 含义
类型
备注 dm 代码
char
jc 简称
char
◎行情数据(cnfqhq)结构 字段名 含义
类型
备注 dm 代码
char
rq 日期 date kp 开盘 num zg 最高 num zd 最低 num sp 收盘 ...
mysql数据库
char
类型
长度
_Mysql数据库
Char
和Var
char
字段
类型
长度
的选择比较
现代数据库一般都支持
CHAR
与VAR
CHAR
字符型字段
类型
,
CHAR
是用来保存定长字符,存储空间的大小为字段定义的
长度
,与实际字符
长度
无网上有很多关于
char
和var
char
的相关比较,但是都历史悠久,这里转载一篇信息比较新...
mysql
char
类型
比较大小_Mysql数据库
Char
和Var
char
字段
类型
长度
的选择比较
现代数据库一般都支持
CHAR
与VAR
CHAR
字符型字段
类型
,
CHAR
是用来保存定长字符,存储空间的大小为字段定义的
长度
,与实际字符
长度
无网上有很多关于
char
和var
char
的相关比较,但是都历史悠久,这里转载一篇信息比较新...
mysql
char
mybatis_解决mybatis使用
char
类型
字段查询oracle数据库时结果返回null问题
同事在学mybatis时,遇到了一个问题就是,使用
char
...后来经过排查,是由于在oracle中,
char
类型
字段,如果内容
长度
不够,会自动以空格方式补足
长度
。如字段 name
char
(5),若值为sgl,那么oracle会自动用空格补足长...
char
最大多大php,Mysql数据库
Char
和Var
char
字段
类型
长度
的选择比较
现代数据库一般都支持
CHAR
与VAR
CHAR
字符型字段
类型
,
CHAR
是用来保存定长字符,存储空间的大小为字段定义的
长度
,与实际字符
长度
无网上有很多关于
char
和var
char
的相关比较,但是都历史悠久,这里转载一篇信息比较新...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章