delphi 关于 "高位" 与 "低位"】的更多相关文章

Longint = Integer WPARAM = Integer LPARAM = Integer LRESULT = Integer FARPROC = Pointer function MakeWord(a, b: Byte): Word; function MakeLong(a, b: Word): Longint; function MakeWParam(l, h: Word): WPARAM; function MakeLParam(l, h: Word): LPARAM; fun…
题目如上,例子v=22312324,c=3,求得最大数为334. 用自己的想法实现了一遍,如果你有更好的方法的话,欢迎不吝赐教. 我的思路是,先将整数v按位存入一个数组,数组低位为整数高位,如num[]={2,2,3,1,2,3,2,4}.求得最大数有c位数,v_max[]={……}. 每次从数组num[]取得一位最大数,存入v_max[]相应位.如求v_max[0],因为v_max有c位,所以可取num[0]~num[len-c-0]中的最大数(len为v的位数),记录最大数下标为num_i,…
1:代码如下: #define WORD_LO(XXX) ((byte) (word)(XXX) & 255) #define WORD_HI(XXX) ((byte) (word)(XXX) >> 8)…
函数由一句或多句代码组成,可以实现某个特定的功能.使用函数可以使代码更加易读.易懂,加快编程速度及减少重复代码.过程与函数类似,过程与函数最重要的区别在于,过程没有返回值,而函数能有返回值.     本文整理自以下链接 http://blog.sina.com.cn/s/blog_40a8922201000py6.html http://blog.163.com/jiandande3218@126/blog/static/74728469201132715251648/ PASCAL函数过程表…
Delphi动态事件深入分析 2009-2-7 作者:不得闲核心提示:本实验证明了在类中方法的调用时候,所有的方法都隐含了一个Self参数,并且该参数作为对象方法的第一个参数传递... 首先做一个空窗体,放入一Button.在implementation下面声明两个方法如下: // 外部方法,只声明一个参数,此时按照标准的对象内部事件方法TNotifyEvent声明,此声明中,Sender则对应为产生该事件的对象指针. procedure ExtClick1(Sender: TObject);…
Delphi2010之后的RTTI做了很大休整,现在用起来很爽了哦.甚至可以获取某些类的内部私有单元,然后为其赋值!讲这个RTTI增强的,可以参考网上的多个博客内容,我列举一下:Delphi2010RTTI的增强Delphi的Anymouse方法探秘万一的Rtti系列 我这里的主要目的是挂钩某些内部私有事件,然后增加上一些自己的处理过程,这里我以TMenuItem的私有内部事件FOnChange作为例程.这个私有事件在菜单内部绑定,我们平常状态下,在外部无法更改!但是XE之后这个问题不在存在,使…
在工业控制中,Modbus RTU CRC16的校验码用的比较广泛,包括本人富士产品中,PC与伺服电机以及PC与VP系列的变频器的Modbus RTU通讯中都使用到了CRC16.     而对CRC16的计算的方式基本上有2种:第一种,使用双循环依照CRC的计算方法进行计算,第二种,采用查表的方式.本人愚钝无比,从网络上搜来的查表法都与实际的正确CRC16的结果有所差异,因此编写了一个小程序供自己使用.    软件的界面很简单,输入诸如“010303020014”的值,然后每2个字符作为一个字节…
[delphi] view plain copy   print? 首先做一个窗体如下 然后单元中如下代码: 在implementation下面声明两个方法如下: //外部方法,只声明一个参数,此时按照标准的对象内部事件方法TNotifyEvent声明,此声明中,Sender则对应为产生该事件的对象指针. procedure ExtClick1(Sender: TObject); begin {asm mov eax,[edx+8] call showmessage end; } showmes…
.net下简单快捷的数值高低位切换 做网络通讯中数值传输是很普遍的事情,但数值的存储在不平台和硬件上存储方式都不一样,主要有两大类分别是高位和低位存储:而.net平台下是低位存储,通过.net提供的函数读写是低位也不提供设置:对于高位存储的就有比较流行的语言平台有Java.由于存储不一样所以在读取和写入的时候就需要另一方面做转换.在.net下其实简单地通过反转数组或移位存储的方式可以简单的进行高位转换.不过程序已经写好了而在读写的时候用了低位,又不想修改读写代码可以简单地通过以下函数对数值转换一…
我们都知道,hashMap在实现的时候,为了寻找在数组上的位置,主要做了两件事 int hash = hash(key); int i = indexFor(key, table.length); 这个时候得到i才是数组上的位置. 这两个方法详解如下 JDK8对扰动函数的修改,只进行了一次移位(又移16bit),再和key.hashCode()做异或,如图 static final int hash(Object key){ int h; return (key == null) ? 0 : (…
前言 由于工作需要,这几天学了一点MFC,在AFX里看到很多熟悉的东西,如类型信息,序列化,窗口封装和消息分派.几乎每个界面库都必须提供这些基础服务,但提供的手法却千差万别.MFC大量地借用了宏,映射表来实现,而VCL则更多的在语言级别上给与支持.这其实是很容易理解的,因为C++是一个标准,不会因某个应用而随便扩展语言:相反Delphi完全由一个公司掌握,因此每支持一项新技术,变化最大的往往是语言本身. 学习MFC的代码,再对照VCL的实现,这真是一个很有意思的过程,其中可以看到两个框架在一些设…
网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成.本着对服务器性能的考虑,这种小事情都让服务器去做,感觉对不住服务器,尤其是对于大流量的网站,虽然有服务器端缓存,毕竟需要大量的CPU运算时间,这或多或少也是很大的一块压力.所以就想,有没有一种不靠服务器,就只靠JS就生成二维码呢,毕竟二维码就是一堆黑白点而已.我也没有刻意去找网络上是否已经存在这样的解决方案,而且自己一直想深入分析二维码的生成细节,现有的项目也有这样的需求,于是我自己研…
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基础 (7)WebService的开发与应用基础 一.基础类型和语法 1.1 .NET中所有类型的基类是什么? 在.NET中所有的内建类型都继承自System.Object类型.在C#中,不需要显示地定义类型继承自System.Object,编译器将自动地自动地为类型添加上这个继承申明,以下两行代码的…
这几天在博客园上看到好几个写Java和C#的socket通信的帖子.但是都为指出其中关键点. C# socket通信组件有很多,在vs 使用nuget搜索socket组件有很多类似的.本人使用的是自己开发的一套组件. Java socket通信的组件也有很多,常用的大多数都是用的mina或者netty.游戏行业使用也是居多. 关于socket的底层写法,实在太多,我就不在BB. 这里我想说,C#和C++或者叫VC++把是使用小端序作为字节序.而java使用的是大端序作为字节序. 也就是说比如一个…
1.在notepad里,(中文系统下) 按住Alt 然后按52946最后放开Alt 按住Alt 然后按45230最后放开Alt 按住Alt 然后按50403最后放开Alt 你会看到"我爱你"三个字. 2.原理:Alt+[Unicode编码]对应的十进制数字即可打出该[Unicode编码] 比如52946是"我"在Unicode下的十进制编码,45230是"爱"在Unicode下的十进制编码,50403是"你"在Unicode下…
1.共用体和结构体的相同和不同 (1)相同点就是操作语法几乎相同.(2)不同点是本质上的不同.struct是多个独立元素(内存空间)打包在一起:union是一个元素(内存空间)的多种不同解析方式. #include<stdio.h> //对同一地址数据的不同解析方法 union myunion { int a; int b; //char b; }; struct mystruct { int a; char b; }; int main(void) { union myunion u1; s…
问题提出 中国象棋的"将","帅"问题,他俩不能在一条直线上.求出他们的合法位置,并且只能用一个变量. 分析 一头雾水,不明所以.往下看了下,感觉像是程序员为难程序员的样子.只能用一个变量,并且只能用一个byte.一个byte有8位,前四位表示一个位置,后四位表示另一个位置.通过遍历位置找出互斥位置,并且去掉.大概思路是这样了. 书中的解法 第一种不是很懂,反正是操作一个byte的前四后四了. 第二种,超级巧妙.运用了81%9和81/9作为数集,遍历了(1-9)*(…
cbh大爷说:写博客不能弃坑. orz cbh 那我就来更新博客了. violet这个系列的题好神啊……出题人好劲啊…… ……怎么最近都在理性愉悦啊…… 另外bzoj400题纪念~ 2708: [Violet 1]木偶 首先先对所有木偶按照特征值排序 考虑一种木偶与绳索配对的方法: 木偶\(1\)与绳索\(k+1\)配对,木偶\(2\)与绳索\(k+2\)配对……木偶\(n-k\)与绳索\(n\)配对. 当木偶\(n-k+1\)无法与绳索\(k\)配对时,这样的配对方法能扔掉\(k\)个木偶.…
题意:给出两个数字位数相同,分别中间有若干位不知道,用问号表示.现在要求补全这两个数字,使得差值的绝对值最小,多解则取第一个数字的值最小的,再多解就取第二个数字最小的. 分析: 类似数位dp,但是很多状态可以直接得出最终解,个别状态需要状态转移. 我们从高位到低位依次确定两个数的每个位是几.一旦确定了两个数的一个位不一样,则可以立即将小的一方的后续问号全部写9,大的一方后续问号全部写0.这样才能让差值最小. 那我们观察每个位的时候要如何确定其值呢?分如下几种情况. 1.两个数的该位都是问号,那么…
基本上C语言的可变参数原理在不同平台和不同编译器下基本类似(通过函数入栈,从右向左,从高位到低位地址),不过部分实现会有所不同:在使用中需要注意的是: va_list 为char 类型指针,部分调用如vnsprintf.vsprintf(内部通过遍历获取va_arg各个参数值)等会修改其指针位置:在windows下通过一个副本va_list实现va_arg操作,而在linux下不会产生副本va_list,而是直接修改原va_list的指针对象: 在编写程序的时候,当调用了类似vnsprintf的…
Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5646   Accepted: 1226 Description In an edge-weighted tree, the xor-length of a path p is defined as the xor sum of the weights of edges on p: ⊕ is the xor operator. We say a path the xor-l…
智力彻底没有了...看来再也拿不到奖金了QAQ... A B君的游戏 因为数据是9B1L,所以我们可以hash试一下数据... #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> #define rep(i,s,t) for(int i=s;i<=t;i++) #define dwn(i,s,t) for(int i=s;i>=t;i--) using n…
今天,听到有好多同学最近要去面试CVTE这家企业,于是呢,准备将自己的经历写上来,给大家一个参考,希望能够大家一次帮助. 一.整体感觉 首先呢,先讲一下我个人对这家企业的整体感觉吧. 1. 第一次 对于CVTE这家企业,我想是很难忘记的了,因为我的第一次面试,第一个offer都是这家企业给的,可能初生牛犊不怕虎,期望的薪资都很高,还记得面试出来后,那些师兄们个个异样的眼光看着我说:“师弟,你牛逼,够自信够狂”,呵呵,好吧,我承认现在想起来,当时真的很狂,当然,大家在面试的时候不要这样子啦,这是面…
一.函数 函数是一个包含完成一定功能的执行代码段.我们可以把函数看成一个"黑盒子", 你只要将数据送进去就能得到结果, 而函数内部究竟是如何工作的的, 外部程序是不知道的.外部程序所知道的仅限于输入给函数什么以及函数输出什么.函数提供了编制程序的手段,使之容易读.写.理解.排除错误.修改和维护. 计算1-n的和 #include "stdio.h" void main() { //write once only once 只写一次 ; ;i<=;i++) {…
对SSE的学习总算迈出了第一步,用2天时间对双线性插值的代码进行了优化,现将实现的过程梳理以下,算是对这段学习的一个总结. 1. 什么是SSE 说到SSE,首先要弄清楚的一个概念是SIMD(单指令多数据流,Single Instruction Multiple Data),是一种数据并行技术,能够在一条指令中同时对多个数据执行运算操作,增加处理器的数据吞吐量.SIMD特别的适用于多媒体应用等数据密集型运算. 1.1 历史 1996年Intel首先推出了支持MMX的Pentium处理器,极大地提高…
题目链接: 题目链接 题意:如果一个数二进制n有k位1,那么f1[n] = k,如果k有s位二进制1,那么f2[n] = f1[k] = s.  如此往复,直到fx[n] = 1,此时的x就是n的”K值“,现在要求[L,R]内的”K值“为X的数有多少个.(1<=L<=R<=10^18) 解法:首先可以看到10^18最多只有61位左右的数,所以我们只需处理1~61之间每个数有多少个1,即可知道1~61之间每个数”K值“是多少. 然后就将求[L,R]之间的个数变成求[1,R]-[1,L-1]…
#include<iostream> #include<string> using namespace std; #define MAXN 10001 },b[MAXN]={}; bool init(int a[]) { int i; string s; cin>>s; a[]=s.length(); ]=='-') { //a[0]--; ;i<=a[];i++) a[i]=s[a[]-i]-'; a[a[]]=; a[]--; return false; }…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description 背景众所周知,花神多年来凭借无边的神力狂虐各大 OJ.OI.CF.TC -- 当然也包括 CH 啦.描述话说花神这天又来讲课了.课后照例有超级难的神题啦-- 我等蒟蒻又遭殃了.花神的题目是这样的设 sum(i) 表示 i 的二进制表示…
一.前面的话 PHP的pack和unpack提供了为一系列数据打包(pack)和解包(unpack)成2进制流的功能,这个功能在面向字节的字符串处理和套接字的编程环境中尤为适用. 在了解这两个函数之前,我们必须掌握一些关于面向字节流编程的概念,否则很难真正上理解它们. 1.什么是字节序 字节序,顾名思义就是字节存放的顺序 计算机在传输或存储多字节的时候,会对每个字节进行双方排序的约定,例如,单字节高位在前还是在后?是需要用1000 0000 0001 0000还是0001 0000 1000 0…
Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. ----------------------------------------------------------------------------------------- 1.在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”? 首先,extern 是 C/C++…