汇编 qword 汇编64位 qword - 电脑|办公 - 电脑办公-杀毒安全-网络-V3学习网
微商网
 
 
导航:首页 |电脑|办公|正文

汇编 qword 汇编64位 qword

时间:2021-04-15 10:34:12
printf("%f n",5)的输出结果为什么是0 000000 1,之所以没输出5,这是C语言设计的原因。2,之所以输出0,这是计算机体系结构的问题。具体来说:printf函数不会进行任何类型转换
作者:

汇编 qword

printf("%f\n",5)的输出结果为什么是0.000000

1,之所以没输出5,这是C语言设计的原因。

2,之所以输出0,这是计算机体系结构的问题。

具体来说:printf函数不会进行任何类型转换,它只是从内存中读出你所提供的元素的值(按照%d,%f等控制字符提示的格式)。

C语言设计中,int类型一般是32bit或者16bit,而float一般是64bit,并且有可能使用科学计数保存。

这点就和huhugo88所说一样,5在内存中为00000000,00000101。

而且5一般都在静态区,程序的静态存储区默认是0,那么当用%f来读时,就会读64bit,也就是会读之前的很多位0,最后按照(有效数字)*(基数2)pow(指数)的方式来取数,自然结果是0之所以Vc中不允许这种情况,而有些编译器就允许这么输出就是编译器设置的问题。

按理说,这样访问内存是属于越界访问,应该禁止。

不过只是读,伤害性不大而已。

汇编语言的基本数据类型

字节 个字节有8位 2进制组成其最高位是第7位最低位是第0位如右图所示在表示有符号数时最高位就是符号位 通常情况下存储器按字节编址读写存储器最小信息单位就是个字节 2..4294967295 远字 FWORD DF 6 四字 QWORD DQ 8 十字节 TBYTE DT 10 有符号字节SBYTE 1 -128..、字 由2个字节组成个字其最高位是第15位最低位是第0位高8位称为高字节低8位称为低字节如右图所示 字节和字是汇编语言中最常用两种数据类型也是最容易出错数据类型 3.....32767 有符号双字SDWORD 1 -2147483648.、双字 用2个字(4个字节)来组成个双字其高16位称为高字低16位称为低字如右图所示 双字有较大数据表示范围它通常是为了满足数据表示范围而选用数据类型也可用于存储远指针 字节、字和双字是汇编语言最常用 3种数据类型下图表现出它们 3者的间组成关系 4、串 串是由若干个字节组成字节数不定通常每个字节存储个该数据形式是汇编语言中经常使用另种数据形式 类型 助记符 助记符简写 所占字节数 数值范围 字节 BYTE DB 1 0、 4字 由4个字(8个字节)组成个 4字类型它总共有64个 2进制位当然也就有更大数据表示范围但在汇编语言中很少使用该数据类型 5:字节、字、双字等这些数据类型在以后章节中都有相应类型介绍说明符下面对它们进行最基本描述 1..255 字 WORD DW 2 0.......65535 双字 DWORD DD 4 0......127 有符号字 SWORD 1 -32768..汇编语言所用到基本数据类型为、十字节 由10个字节组成个十字节类型它总共有80个 2进制位在汇编语言中很少使用该数据类型 6 展开

大家还关注
    
阅读排行
推荐阅读