关于 int 类型 与 char 类型的关系问题

ttlyfast 2005-09-09 07:58:08
问题1 听说int 的类型是用 两个char 类型的变量定义的

所以 int类型 长是16 char是8
有没有人知道完整代码?

问题2 如果 int 类型是 char 类型 组出来的
那磨 可不可以 用char类型 组出 长为24的 类型?(怎样编写)

问题3 char 类型是不是别的类型组出来的?还是用中断实现的?
double 类型是不是char类型组出来的?(具体代码?)

问题4 指针类型的变量问题

*p=q 和p=a 的汇编代码是甚磨?



...全文
325 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowbirdfly 2005-09-11
  • 打赏
  • 举报
回复
想学习低层C语言和汇编语言就够了~~~
学生想学不知道从何作起?
可以看看C语言就看看一些应用了,汇编有一本很经典,win32汇编实现~~
具体名字不是很清楚!看了一定会有很大收获~~~
na1ve 2005-09-11
  • 打赏
  • 举报
回复
学生想学不知道从何作起?

现在学生只会c 和汇编 ~~~
----------------------------
这么强悍还谦虚,我现在都还不会C和汇编!
heguosheng 2005-09-11
  • 打赏
  • 举报
回复
up
sankt 2005-09-09
  • 打赏
  • 举报
回复
up
ttlyfast1 2005-09-09
  • 打赏
  • 举报
回复
多谢 Bobby136(鄙视地球人!) 老师指导!!

Bobby136(鄙视地球人!) 老师 对底层的东西太了解了

学生想学不知道从何作起?

现在学生只会c 和汇编 ~~~
Bobby136 2005-09-09
  • 打赏
  • 举报
回复
你问的问题因具体情况不同,相应的代码不同。

一般来说a=b
相当于
mov ax, b
mov b,ax

ax可以是其他寄存器,也可用栈实现

局部变量在栈中产生,全局和动态在数据区
这些都是编译器做的事,用不着管它
ttlyfast 2005-09-09
  • 打赏
  • 举报
回复
恩 ~~~
应该是真的 不过得请高人给出代码
逍遥过客 2005-09-09
  • 打赏
  • 举报
回复
问题1:char类型的长度是1字节,而int类型的长度等于机器的指令字长,即16位的计算机上int类型长度为2字节,32位的机器上int类型的长度位4字节。好像没有听过“int 的类型是用 两个char 类型的变量定义的”这种说法。

问题2:对于24位长的数据类型,你完全可以用char[3]数组来存储,但你自己要知道怎样解析每个字节的数据。举个例子,int型整数0x12345678,如果是INTEL的CPU在内存中存储时低位存储在低字节。

int i = 0x12345678;

存储方式:(通常所说的小头)
地址:内容
i :0x78
i+1 :0x56
i+2 :0x34
i+3 :0x12

在网络中传输的数据的存储方式是低位存储在高字节

存储方式:(通常所说的大头)
地址:内容
i :0x12
i+1 :0x34
i+2 :0x56
i+3 :0x78

问题3:浮点数的存储有专门的标准:IEEE-754,具体内容可以到网上搜一下。
简单说float型由4字节表示,1位表示符号位,8位表示指数,23位表示底数。


ruiding 2005-09-09
  • 打赏
  • 举报
回复
听说int 的类型是用 两个char 类型的变量定义的

==================================================

这是真的吗?
ttlyfast 2005-09-09
  • 打赏
  • 举报
回复
外部静态变量 *p
q与a 都是动态的
是不是动态的变量是在寄存器中?
静太变量在那里?
Bobby136 2005-09-09
  • 打赏
  • 举报
回复
计算机数据只有0和1,int和char只是长度不同而已

*p=q 和p=a 的汇编代码是甚磨?要看p,q,a是什么变量,实在栈中还是在数据段中,还是在寄存器中

69,336

社区成员

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

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