首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

原来还可以这样来给一个整数赋值.int a = 'ab'; a = 97 * 256 + 98 = 24930解决思路

2012-06-07 
原来还可以这样来给一个整数赋值.int a aba 97 * 256 + 98 24930Assembly code学汇编时看到DAT

原来还可以这样来给一个整数赋值.int a = 'ab'; a = 97 * 256 + 98 = 24930

Assembly code
;学汇编时看到;DATA1 DW 'AB' 跟 DATA2 DB 'AB' DATAS SEGMENT    DATA1 DW 'AB'     DATA2 DB 'AB'DATAS ENDS;发现DW 'AB'在内存中的存放是BA , B在低地址,A在高地址 ;而DB 'AB'在内存中的存放顺序是AB;对于DW 'AB'我是这样理解的,不知道正确不。;DW 'AB' 'AB'相当于一个字,A是高8位,B是低8位,故存放在内存时B在低地址,A在高地址。


C/C++ code
/*用C语言写了个程序验证了下我的想法*/#include<stdio.h>int main(){    int a = 'ab'; 97 * 256 + 98 = 24930    printf("%d\n", a); //输出24930    return 0;}



[解决办法]
恩。学过汇编就是好。
[解决办法]
学汇编就是有一点好处 不懂了就会变一下
[解决办法]
《IBP-PC汇编语言》 这本书哪有卖?
[解决办法]
小端对齐...
[解决办法]
又验证了赵老师说的话
[解决办法]
我也准备要学一下汇编.
[解决办法]
所以C是很不安全的弱类型语言呢,各种无检查和隐式转换。
不过字节序和具体的机器有关,Intel是little endian,PowerPC等是big endian。
[解决办法]
这个程序有误啊。。。
[解决办法]
学习了。
看似汇编很有用啊。

热点排行