首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【小白学C#】浅谈.NET中的IL代码

通过IL中间语言这种方式,可以实现跨平台、提高程序灵活性等多种优点。   下面我们以C#语言为例,大致了解了解一下我们的源代码是如何编译成IL语言,继而运行在电脑上面的。 ?...Bge.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt 如果第一个值大于第二个值,则将控制转移到目标指令。...Bgt.S 如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt.Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。...Blt.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于第二个值,则将控制转移到目标指令(短格式)。...Bne.Un 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令。 Bne.Un.S 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令(短格式)。

3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    IL指令详细

    Bge.S 如果第一个值大于或等于第二个值,则将控制转移到目标指令(短格式)。 Bge.Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。...Bge.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt 如果第一个值大于第二个值,则将控制转移到目标指令。...Bgt.S 如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt.Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。...Blt.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于第二个值,则将控制转移到目标指令(短格式)。...Bne.Un 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令。 Bne.Un.S 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令(短格式)。

    1.5K30

    Reflector、reflexil、De4Dot、IL指令速查表

    Bge.S 如果第一个值大于或等于第二个值,则将控制转移到目标指令(短格式)。 Bge.Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。...Bge.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt 如果第一个值大于第二个值,则将控制转移到目标指令。...Bgt.S 如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt.Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。...Blt.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于第二个值,则将控制转移到目标指令(短格式)。...Bne.Un 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令。 Bne.Un.S 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令(短格式)。

    1.8K50

    IL指令速查

    Bge.S 如果第一个值大于或等于第二个值,则将控制转移到目标指令(短格式)。 Bge.Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。...Bge.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt 如果第一个值大于第二个值,则将控制转移到目标指令。...Bgt.S 如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt.Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。...Blt.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于第二个值,则将控制转移到目标指令(短格式)。...Bne.Un 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令。 Bne.Un.S 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令(短格式)。

    1.6K70

    IL指令详细表

    Bge.S 如果第一个值大于或等于第二个值,则将控制转移到目标指令(短格式)。 Bge.Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。...Bge.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt 如果第一个值大于第二个值,则将控制转移到目标指令。...Bgt.S 如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt.Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。...Blt.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于第二个值,则将控制转移到目标指令(短格式)。...Bne.Un 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令。 Bne.Un.S 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令(短格式)。

    2.1K20

    用C的数据类型宽度扩展来解释char c=128;printf(%d,c);问题

    (2)当char转换为int时,内存中的数据如何从1个字节扩展到4个字节?...当char型扩展到int型时,C标准中有如下规则: (2.1)短数据类型扩展为长数据类型 (a)要扩展的短数据类型为有符号数,进行符号扩展,即短数据类型的符号位填充到长数据类型的高字节位(即比短数据类型多出的那一部分...y=x; 则y的值应为00000000 00001001b; //例2 (b)要扩展的短数据类型为无符号数,进行零扩展,即用零来填充长数据类型的高字节位。...short y=x; 则y的值应为00000000 00001001b; //例2 (2.2)长数据类型缩减为短数据类型 如果长数据类型的高字节全为1或全为0,则会直接截取低字节赋给短数据类型;...(2.3)同一长度的数据类型中有符号数与无符号数的相互转化 直接将内存中的数据赋给要转化的类型,数值大小则会发生变化,因为以不同类型解释同一段内存数据会得到不同的数值。

    1K10

    网络编程(一).TCP(3)

    而上面的函数就是用来进行这方面转化工作的 h:host 本地主机端 to:就是to,转化为 n:net 网络端 l:是 unsigned long (32bit) s:是 unsigned short (16bit) ntohl 无符号长整型...,从网络到本机 ntohs 无符号短整型,从网络到本机 htonl 无符号长整型,从本机到网络 htons 无符号短整型,从本机到网络 ---- INADDR_ANY 宏定义 netinet/in.h...,那么这一步在编程中如何完成,accept函数就是完成这一步的。...当然客户不知道套接字这些细节,它只知道一个地址和一个端口号 __addr 返回新创建的套接字的地址结构,它用来接受一个返回值,这返回值指定客户端的地址,当然这个地址是通过某个地址结构来描述的,用户应该知道这一个什么样的地址结构...• MSG_OOB 发送或接收带外数据 • • MSG_PEEK 窥看外来消息 • MSG_WAITALL 等待所有数据 • 返回值 :>0 表示发送的字节数(实际上是拷贝到发送缓冲中的字节数)

    42810

    C++入门指南及实战 第三步 基本变量

    整形 以上的简介中,已知整形是使用int表示,在整形中还分为短整形、长整形以及整形。短整型、长整形、整形的区别是在于他们之间的存储空间①。短整型是16位②,长整形与整形的存储空间就是32为位。...(编译器版本不一样准寻的标准不一致,当下我使用的是gcc 4.9.2)首先查看如何新建一个整形变量,并且赋予一个值: 注解: 一些概念了解即可,对于初学者并不是需要刚开始就能完全理解①内存空间指数据存储位置的空间...; int main(){ short int a=65535; cout<<a; return 0; } 结果如下: 此时应该存储的值为最大存储值,应该装满了,不能网上装了,这时我们把...有无符号 在C++ 中,整数类型还分为有符号和无符号两种,符号可以理解为符号- 与正号+ ,描述使用的关键字是 有符号 signed 与 无符号 unsigned。...){ signed short int a=-65538; cout<<a; return 0; } 运行结果如下: 当我们使用无符号进行对象的描述: #include

    56710

    socket的简单使用概念socket通信过程,使用步骤:导入头文件创建socket函数connect连接到服务器发送数据接收服务器返回的数据关闭连接例子:请求百度

    (套接字描述符是一个整数类型的值),如果失败就返回-1 ---- connect连接到服务器 作用:用来将参数sockfd 的socket 连至参数serv_addr 指定的网络地址 int connect...//端口号,要使用大尾顺序(各个计算机CPU型号不同,存储的顺序也会不同,htons()函数会将各个计算机统一为网络需要的大尾顺序) struct in_addr sin_addr; //IP地址,无符号长整型数字...指明一个存放应用程式要发送数据的缓冲区(要发送的数据) 指明实际要发送的数据的字符个数,注意:是字符个数 strlen(),不能是字节数sizeof ( ) 是否阻塞,一般填0 返回值:成功则返回实际传送出去的字符数...//http/1.0 短连接 当响应结束后连接会立即断开 //http/1.1 长连接 当响应结束后,连接会等待非常短的时间,如果这个时间内没有新的请求,就断开连接 http长连接和短连接的区别与联系...短连接联完后,立即关闭 http长连接和短连接的应用场景 http长连接的应用场景:苹果推送服务器、网络游戏、静态网页 http短连接的应用场景:动态网页(php等) ---- 接收服务器返回的数据 ssize_t

    1.9K70

    如何实现一个短链接服务 | 短链接生成原理

    如何实现一个短链接服务 短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。 大家经常会收到一些莫名的营销短信,里面有一个非常短的链接让你跳转。...自增id 该方法是一种无碰撞的方法,原理是,每新增一个短码,就在上次添加的短码id基础上加1,然后将这个10进制的id值,转化成一个62进制的字符串。...一般利用数据表中的自增id来完成:每次先查询数据表中的自增id最大值max,那么需要插入的长网址对应自增id值就是 max+1,将max+1转成62进制即可得到短码。...那么如何定义分表的规则呢?...如何转跳 当我们在浏览器里输入 http://bit.ly/a3300 时 DNS首先解析获得http://bit.ly的IP 地址 当DNS 获得IP 地址以后(比如:12.34.5.32),会向这个地址发送

    19K40

    基本数据类型

    地址按顺序付给内存地址,一直增长到内存的最大值。 了解了内存地址有助于C编程中理解变量的存储及所占用的内存空间大小。在编程中出现问题时方便我们知道如何去查找问题,而不是一头雾水。 2....C语言中的数值变量基本上分两大类: 整型变量,存储没有小数部分的数值,分为有符号和无符号变量。有符号变量可以存储正负值,无符号变量只能存储正值和零。...浮点型变量:存储带有小数部分的值 下面看一下C语言的数值数据类型 关键字 类型 char 字符 short 短整型 int 整型 long 长整型 long long 长长整型 unsigned char...无符号字符 unsigned short 无符号短整型 unsigned int 无符号整型 unsigned long 无符号长整型 unsigned long long 无符号长长整型 float...如果超过范围编译可以通过,但是程序运行时可能发生意想不到的问题。 4. 常量 常量与变量类似,但是与变量不同的是存储在常量中的值在程序运行中是不可改变的。

    55020

    Keep面经汇总

    Fetch-and-Increment Swap Compare-and-Swap (CAS) Load-Linked/Store-Conditional (LL/SC) 典型的应用在 AtomicInteger 中 无同步方案...二、算法 从矩阵左上角到右下角的走法有多少种 一个长字符串,一个短字符串,短字符串中的字符间顺序我们可以任意改变,实现在长串中找到短串的代码 Top k问题 求不相邻的最大子数组 排序算法有哪些?...归并思想 三、JVM 强软弱引用以及使用场景 对象的生命周期 如何判断对象能否回收 对象循环引用了怎么办 什么情况下会触发gc 内存泄漏有哪些场景、如何检测、如何避免 java堆中存放的是什么,栈中存放什么...类加载的过程 类加载的过程主要分为三个部分: 加载:指的是把class字节码文件从各个来源通过类加载器装载入内存中。 链接 初始化:对类变量初始化,是执行类构造器的过程。...https通信过程 客户端发送请求到服务器端 服务器端返回证书和公开密钥,公开密钥作为证书的一部分而存在 客户端验证证书和公开密钥的有效性,如果有效,则生成共享密钥并使用公开密钥加密发送到服务器端 服务器端使用私有密钥解密数据

    77430

    串口调试工具--UartAssit

    目前所支持的基本数据类型如下: 类型名 可用别名 类型说明 char 有符号字符 unsigned char byte或uchar 无符号字符 short 有符号短整形 unsigned short...ushort 无符号短整形 int 有符号整形(32位) unsigned int uint 无符号整形(32位) float 32位浮点数 bool 布尔类型 string 字符串类型 使用限制...(15)unix_timestamp - 获取32位unix时间戳 函数原型: unsigned int unix_timestamp(void); 入口参数: 无 返 回 值: 返回32位无符号整数。...(16)genAutoID - 生成32位自增流水ID 函数原型: unsigned int genAutoID(void); 入口参数: 无 返 回 值: 返回32位无符号整数。...功能描述:从指定位置(当前指令帧offset偏移地址,或者模板字段注解名对应的指令数据段处)拷贝1个字节的无符号数据。

    6.5K10

    Go 语言网络编程系列(七)—— RPC 编程篇:默认编解码工具 Gob

    gob.Encoder 对数据进行编码,接收端在收到消息后会通过 gob.Decoder 对数据进行解码,就像 PHP 中 json_encode 与 json_decode 所做的那样。...上述 struct { A, B int } 结构编码的数据可以被后面 9 种结构类型接收解码,具体来说,接收数据结构只要满足与发送数据结构签名一致(与顺序无关,不能类型之间不能相互编解码,整型还要细分为有符号和无符号...具体到不同的数据类型,规则如下: struct、array、slice 是可以被编码的,但是 function 和 channel 是不能被编码的; 整型分为有符号和无符号,无符号和有符号整型是不能互相编解码的...和 []byte)是以无符号字节个数 + 每个字节编码的形式编解码的; 数组类型(包含 slice 和 array)是按照无符号元素个数 + 每个数组元素编码的形式进行编解码的; 字典类型(map)是按照无符号元素个数...Gob 的优点与不足 与 JSON 或 XML 这种基于文本描述的数据交换格式不同,Gob 是二进制编码的数据流,因此性能和传输效率更高,并且 Gob 流是可以自解释的,从而具备了完整的表达能力。

    1.7K60

    C语言中的数据类型

    整型常量可以是长整型、短整型、符号整型和无符号整型。...int long = 1000L;/*L表示长整型*/ unsigned int long =500U;/*U表示无符号整型*/ 八进制整数 要使用的数据表达式形式是八进制,需要在常数前加0进行修饰。...=10; printf("%d\n",iNumber); return 0; } 无符号基本整型 无符号基本整型使用的是关键字unsigned int ,取值范围是0~4294967295 有符号短整型...有符号短整型使用的关键字是signed short int,取值范围是-32768~32767 short iShortNum; iShortNum = 10; 无符号短整型 无符号短整型使用的是关键字...取值范围是-2147483648~2147483647 long iLongNum; iLongNum = 10; 无符号长整型 无符号长整型使用的关键字是unsigned long int,其中的int

    1.4K20
    领券