社区
C语言
帖子详情
对于char a = 0x123456;这种情况,C/C++语法是怎样规定的?
My_Love
2012-07-25 09:06:56
a == 0x56? or 未知?
...全文
288
7
打赏
收藏
对于char a = 0x123456;这种情况,C/C++语法是怎样规定的?
a == 0x56? or 未知?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
My_Love
2012-07-25
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
就是溢出,但结果必然0x56这跟大小端没关系
[/Quote]
有法定依据没?
赵4老师
2012-07-25
打赏
举报
回复
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
不要写连自己也预测不了结果的代码!
Corner
2012-07-25
打赏
举报
回复
常量值截断~留下0x56,相当于类型转换。
int a = 0x123456;
char b = (char)a;
nice_cxf
2012-07-25
打赏
举报
回复
就是溢出,但结果必然0x56这跟大小端没关系
图灵狗
2012-07-25
打赏
举报
回复
未知,CPU有大小端的差异,根据不同的字节存储顺序会有不同。
nice_cxf
2012-07-25
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
显然没有依据。
引用 5 楼 的回复:
引用 2 楼 的回复:
就是溢出,但结果必然0x56这跟大小端没关系
有法定依据没?
[/Quote]
这个还用找什么依据?有大端的系统自己测试以下不就知道了?
数据溢出截断而已,和cpu编译器有什么关系?如果是short必然0x3456
图灵狗
2012-07-25
打赏
举报
回复
显然没有依据。
[Quote=引用 5 楼 的回复:]
引用 2 楼 的回复:
就是溢出,但结果必然0x56这跟大小端没关系
有法定依据没?
[/Quote]
C-Free 4.1 功能加强版本【附带注册代码】
增强的C/
C++
语法
加亮器,(可加亮函数名,类型名,常量名等); 增强的智能输入功能; 可添加语言加亮器,支持其他编程语言; 可添加工程类型,可定制其他的工程向导; 完善的代码定位功能(查找声明、实现和引用); ...
初谈如何从汇编转向PICC
对于那些习惯于使用
C++
的人来说,需要重新熟悉C语言的基本
语法
和特性,因为PIC C 不支持
C++
。 ##### 2.3 头文件与寄存器映射 在PIC C 中,`#include <pic.h>` 是必需的,这个头文件包含了对特定芯片寄存器的声明。...
第十二天(指针练习)
/解释为p = p + 2 * (sizeof(*p)) = p + 8 = 0x1238 + 8 = 0x1240。//解释为 q = q + 2 * (sizeof(*q)) = 0x1358 + 2 = 0x135a。//这个时候编译器会将其解释为 p = p + 1 * (sizeof(*p)) = p + 4。//解释为 t = t + ...
C/
C++
:基本
语法
看这一篇就够了
一、认识C语言 1、C语言的演化历程 可表示为:01-》汇编-》C语言 (1)硬件电路只能表示0、1两个状态,因此最开始编程时,使用的是0101010110101...进行表示,当要做加法时,可以用特定序列(如010101来标识),...
128在c语言中的长度,
char
c=128;printf("%d",c);问题
char
型变量c中存储的是128的补码:10000000。上一篇文章已经说到,对于计算机来说,存储的都是数据的补码。赋值给
char
型,debug模式下反汇编如下:
char
c = 128;00C6446E mov byte ptr [c],80h
char
cc = c;00C64472 ...
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章