分析2个代码片段(数值范围,类型转换相关)
来源:互联网 发布:网络小精灵粤语 编辑:程序博客网 时间:2024/05/16 05:16
测试环境:VC6.0
#include <stdio.h>int main(void){unsigned short index = 0;unsigned short i = 0;printf("%x\n",index-1);for(i=0;i<index-1;i++)printf("%d\n",i);}//对于short无符号数index=0, index-1因为1是有符号int类型,这会发生隐含类型转换
//unsigned short转换为int类型来运算 所以index-1=-1 也就是0xffffffff
//i<index-1 那么0 < -1 不满足条件,跳出循环(猜想在比较的时候i也会发生类型转换)
#include <stdio.h>int main(void){unsigned long index = 0;unsigned short i = 0;//sizeof(unsigned long) 为4字节printf("%x\n",index-1);for(i=0;i<index-1;i++)printf("%d\n",i);}//对于long无符号数index=0, index-1因为1是有符号int类型,而index是unsigned long,
//这会发生隐含类型转换
//int转换为unsigned long类型来运算 所以index-1=0xffffffff 被解析为无符号数4294967295
//i<index-1 unsigned short的取值范围[0,65535],而index-1=0xffffffff=4294967295
//i一直加,加到63335还是小于4294967295,然后再加1,那么就会得到i=0,这个循环就无法跳出来
//unsigned short i = 65535; 65535=1111 1111 1111 1111
//i = i + 1 65535+1 = 1111 1111 1111 1111 + 1 = 1 0000 0000 0000 0000
//因为unsigned short只占2个字节,那么只会取后面的2个字节作为数值也就是0
0 0
- 分析2个代码片段(数值范围,类型转换相关)
- 【Android代码片段之一】图片处理Bitmap相关类型转换
- 类型的数值范围
- 相关数值分析多种算法代码
- 类型转换: 自动类型转换:数值范围小的转到数值范围大 强制类型转换:数值范围大的转到数值范围小 浮点类型的数据想其他类型转化时需要强制类型转换,同时可能发生精度丢失 当强制把数值范围大的转化为数值范
- java基本类型取值范围及相关类型转换
- java基本类型取值范围及相关类型转换
- java基本类型取值范围及相关类型转换
- C# 数值转换相关
- 类型转换 数值操作
- java 数值类型转换
- json_encode 数值类型转换
- 基本数值类型转换
- 数值类型转换练习
- javscript数值类型转换
- python 数值类型转换
- 4个类型转换相关的关键字
- jq片段代码分析........
- Maven Tutorial
- 精研技术十数年,我却失业了
- 燕尾定理
- zoj1074 TO THE MAX(动态规划)
- 树的定义
- 分析2个代码片段(数值范围,类型转换相关)
- altium desiner 智能交互布线出现的方法
- 动态规划法—0-1背包问题(二)
- 最长单调递增子序列
- thinkPHP3.0开启trace
- 用Java语言实现对十六进制字符串异或运算
- timer function set and clear out in JavaScript
- 虚拟现实初识
- numeric_limits类及其用于判断类型的取值范围