• /// 带偏移量自定义分页方法 /// /// 每页条数 /// 当前页 /// 总条数 /// 条件 /// public string BuildPagers(int PageSize, int CurrentPage, int TotalCountRecord,string where) {
        /// <summary>
        /// 带偏移量自定义分页方法
        /// </summary>
        /// <param name="PageSize">每页条数</param>
        /// <param name="CurrentPage">当前页</param>
        /// <param name="TotalCountRecord">总条数</param>
        /// <param name="where">条件</param>
        /// <returns></returns>
        public string BuildPagers(int PageSize, int CurrentPage, int TotalCountRecord,string where)
        {
            //偏移量
            int Step = 5;
            int LeftNum = 0;//左值
            int RightNum = 0;
            string PageUrl = Request.FilePath;
            int PageCount = (int)Math.Ceiling((double)(TotalCountRecord) / PageSize); //总页数 
    
            //当前页-步长  <1  则作值=1
            if (CurrentPage - Step < 1)
            {
                LeftNum = 1;
            }
            else
            {
                LeftNum = CurrentPage - Step;
            }
    
            if (CurrentPage + Step > PageCount)
            {
                RightNum = PageCount;
            }
            else
            {
                RightNum = CurrentPage + Step;
            }
            StringBuilder OutPut = new StringBuilder();
            string strUrl = "";
            for (int i = LeftNum; i <= RightNum; i++)
            {
                if (i == CurrentPage)
                {
                    OutPut.Append("<font style='margin-left:3px;' color=red>");
                    OutPut.Append(i.ToString());
                    OutPut.Append("</font>");
                }
                else
                {
                    OutPut.Append("<a style='margin-left:3px;' href='");
                    OutPut.Append(PageUrl);
                    OutPut.Append("?" + where + "&page=");
                    OutPut.Append(i.ToString());
                    // OutPut.Append(strUrl);
                    OutPut.Append("'>");
                    OutPut.Append(i.ToString() + " ");
                    OutPut.Append("</a>");
                }
            }
    
            if (CurrentPage > 1)
            {
                OutPut.Insert(0, string.Format("<a href='{0}?" + where + "&page={1}{2}'>上一页</a>", PageUrl, (CurrentPage - 1), strUrl));
            }
    
            if (CurrentPage < PageCount)
            {
                OutPut.Append("<a href='");
                OutPut.Append(PageUrl);
                OutPut.Append("?" + where + "&page=");
                OutPut.Append(+CurrentPage + 1);
                OutPut.Append(strUrl);
                OutPut.Append("'>下一页</a></li>");
                OutPut.Append("总记录数:<font color='red'>" + TotalCountRecord + "</font>  总页数:<font color='red'>" + PageCount + "</font>");
            }
            return OutPut.ToString();
    
        }
        private void Bind(int Page,string  where)
        {
            str = BuildPagers(16, Page, GoodsFunBLL.GetGoodsListCount(where), where);
            this.DataGoodsList.DataSource = GoodsFunBLL.GetGoodsByTypeIdList(16, Page,where);
            this.DataGoodsList.DataBind();
        }

    展开全文
  • 获取当前时区偏移值

    2013-06-18 17:32:55
    //获取时区偏移(例如北京时间是+8,那么以下方法获得的就是28800000毫秒) Calendar calendar = new GregorianCalendar(); System.out.println(calendar.getTimeZone().getOffset(System.currentTimeMillis()))...

    //获取时区偏移(例如北京时间是+8,那么以下方法获得的值就是28800000毫秒)

    Calendar calendar = new GregorianCalendar();

    System.out.println(calendar.getTimeZone().getOffset(System.currentTimeMillis()));

    展开全文
  • 数组偏移

    2015-10-06 14:27:59
    数组中存在一个词汇:偏移量,在刚开始学习这部分的时候,不理解这个概念,看着例子中的计算... 网上查资料的解说是到数组空间起始位置的偏移值,但是我不明白何谓偏移值。而我理解的是到数组空间起始位置的元素个数

          数组中存在一个词汇:偏移量,在刚开始学习这部分的时候,不理解这个概念,看着例子中的计算方法也不理解。小组讨论时,也没有得出结果,只能悬起来,等深入学习之后继续研究。初步学习阶段已过,现在该回过头来看看遗留问题了,看到这一内容时,忽然间豁然开朗了。

        什么是偏移量?

           网上查资料的解说是到数组空间起始位置的偏移值,但是我不明白何谓偏移值。而我理解的是到数组空间起始位置的元素个数。

        怎么计算?

           数组分为一维数组、二维和多维,现在就以1-3维数组为例进行介绍(PS:在软考中只涉及到了1-3) 

           一维数组:a[n]

            对于一维数组,它的偏移量计算特别简单,比如在a[10]中求a[4]的偏移量

              ①  数组a的下标从0开始

                  则偏移量为4

              ②  数组a的下标从k开始(k<=4,保证所求元素在数组中)

                  则偏移量d=4-k

     

           二维数组:a[m][n]

             对于二维数组,它的偏移量计算分为以行为主序和以列为主序存储。以a[0..4][1..5]为例,计算a[2,2]的偏移量

             ① 以行为主序:偏移量d=i*n+j(i,j下标从0开始)

               以上述为例,由题可知,j的下标是以1为起始,则此时的偏移量为:d=2*5+(2-1)=11

             ② 以列为主序:偏移量d=j*n+i(i,j下标从0开始)

               此时偏移量d=(2-1)*5+2=7

     

            三维数组:a[m][n][o]

              三维数组计算a[i][j][k]的公式为d=i*n*o+j*o+k

                例如:数组a[0..3,0..2,1..4],求a[2,2,2]的偏移量,则可求得d=2*3*4+2*4+(2-1)=33

        小结:

          通过这次学习,一方面理解了偏移量这个东西,收获了新知识。另一方面,更加坚定了现在所走的路,遇到问题可以悬挂起来,在后边的不断学习中,总会找到解决的办法。而且当解决的时候你会感觉当时的问题是那么简单,对它的理解也会更加深刻。学习的过程就是一个不断遇到问题,而又不断总结和解决,在这个过程中,要求我们做的就是把控好全局,千万不要因为一个问题而失去对全局的认识与了解。

    展开全文
  • static void Main(string[] args)  {  int[] src = new[] { 1, 2, 3, 4, 5, 6 };  const int destLen = 4;//目标数组大小  int int_size = sizeof(int);//用于获取类型的字节大小。

    static void Main(string[] args)
            {
                int[] src = new[] { 1, 2, 3, 4, 5, 6 };
                const int destLen = 4;//目标数组大小
                int int_size = sizeof(int);//用于获取值类型的字节大小。
                int[] dest = new int[destLen];
                //只支持基元类型,按字节偏移复制
                Buffer.BlockCopy(src, (src.Length - destLen) * int_size, dest, 0, destLen * int_size);
                foreach (var i in dest)
                {
                    Console.Write(i + "  ");
                }
                Console.WriteLine("\n-------------------------------------------");
                string[] srcstr = new[] { "A", "B", "C", "D", "E", "F" };
                object[] destobj = new object[src.Length - 2];
                //移除的元素个数
                const int dellen = 2;
                //保证不破坏目标数组的元素(回滚)。不装箱、拆箱、或向下转换,否则报错。
               //如果srcstr改为src则报错,因为装箱。
                Array.ConstrainedCopy(srcstr, dellen, destobj, 0, srcstr.Length - dellen);
                foreach (var s in destobj)
                {
                    Console.Write(s + "  ");
                }
            }

     

     

    对指定数组和目标数组,两者类型一致的前提下,进行复制10亿次,

    消耗时间如下:

    copy:59.374s,constrainecopy:48.415 s,blockcopy:23.219s


    代码没什么就是测试下,核心测试如下:

     int[] ints = { 1534, 233, 332, 423, 524, 3246, 4357, 734, 567, 43, 34254, 325, 3325, 2423, 345, 575, 235, 1, 342, 1, 6, 54645, 5432, 5 };
     int[] dest = new int[ints.Length];

    Array.Copy(ints, dest, ints.Length);

    Array.ConstrainedCopy(ints, 0, dest, 0, ints.Length);

    Buffer.BlockCopy(ints, 0, dest, 0, ints.Length * 4);


    注解分析:

    1,Array.Copy在CLR处理机制中最灵活,最强大,可装箱,拆箱复制,可加宽CLR基元类型,可内部判断实现了IFarmattable接口的兼容转换,当然这种强大方式必然会带来一定的性能损失。


    2,Array.ConstrainedCopy 对复制要求严格,只能是同类型或者源数组类型是目标类型的派生元素类型,不执行装箱,拆箱,向下转换


    3,Buffer.BlockCopy 则从本质上以字节为复制单位,这在底层语言C,C++的处理优势上,同理,效率之高可以理解。


    当然如果对性能要求不高,Copy足矣,毕竟在上千次复制下,三者基本没消耗多少时间。使用时可根据项目需求斟酌选择!



     

    展开全文
  • 数组偏移量计算

    2019-07-26 18:34:39
    数组偏移量计算一维数组二维数组三维数组 一维数组 A[5] 求A[2] 偏移量为 2 即为下标 二维数组 设有数组, A[1…5] [0…3] 求偏移量A [2] [ 2] 已知 m = 5,n = 3, i = 2 ,j = 2 行为主序 d = i * n + (j - 1...

    一维数组

    A[5] 求A[2] 偏移量为 2 即为下标
    

    二维数组

    设有数组, A[1…5] [0…3]
    求偏移量A [2] [ 2]

    已知 m = 5,n = 3,
    	i = 2 ,j = 2
        行为主序
        d = i * n + (j - 1) = 7
        列为主序
        d = (j - 1)*  n + i = 5
    

    三维数组

    设有数组 A[1…3][0…5][1…5]
    求偏移量A[2][4][1]

    已知 m = 3,n = 6,o = 5 
    	i = 2,j = 4,k = 1
        行为主序
        d = i * n * o + j * 0 + (k-1) = 80
    
    

    特此记录 !!!

    展开全文
  • +(void)animationView:(UIScrollView *)anmaView activeRect:(CGRect)filedRect { // CGRect filedRect=filed.frame;  CGPoint point=anmaView.contentOffset; // 计算出距离屏幕上方的相对坐标高度 ...
  • 面试---内存偏移

    2015-09-27 17:17:41
    下面程序中pb->func();的输出结果?#include #include using namespace std; class M { public: M() {a = 1; b = 2;}; ~M() {}; void func() { cout; } //pri
  • 自定义的一个对称加密工具类AESUtil.java public static final String ENCRYPTION_ALGORITHM = "AES"; public static final String CIPHER_PARAM = "AES/CBC/PKCS5Padding"; private static final String ...
  • C#中有三种(value),分别是类型实例的、引用类型实例的和引用。 类型表达式的是数据本身。 引用类型表达式的是引用。 引用的是一个数据块,指向引用类型的实例。 注意,上面我说的都是...
  • /************************************************************************** *从指定的原点出发,偏移输入角度后,向此方向延伸输入距离,返回此时的位置 *origin_lon:原点经度 *origin_lat:原点纬度 *azimuth...
  • window.onscroll = function() { //获取滚动条的 var scrollPos; if (typeof window.pageYOffset != undefined)//window.pageYOffset是
  • 1.均值偏移 在6说过一般是使用HSV的色调通道就行所以,所以我们可以直接写成一个函数,输入源图和roi返回反向直方图 static Mat HistBack(Mat src,Mat roi) { Mat srcHSV = new Mat(); Mat roiHSV = new ...
  • C#实现-移位加密

    2007-03-24 12:44:00
    zhanghua Date : 2005-08-11 Fuction : input a strig and encrypt a string 加密后的字符串的第一个字符是原先字符串的最后一个字符, 其余的每一个字符是对应的原字符串中的前一个字符的加 
  • ![图片说明](https://img-ask.csdn.net/upload/201712/01/1512096117_902216.png) 能否根据图片中的信息获得更多的信息 比如函数的返回值什么的 ?
  • 今天偶然看到一段神级代码,如下: #define offsetof(s,m) ((size_t)((ptrdiff_t)&amp;(((s*)0)-&gt;m))) ...其中,s为结构体类型,m为成员名称。...可以获取到成员的偏移量,受教了。。。...
  • 离去年写了有关偏移量有关文章快一年了,但最近在偏移量方面遇到了些小问题,在这里记录下。还有关于偏移量半自动提交,是个很经典的问题,顺便也记录下。
  • 文章出自 http://blog.csdn.net/soar_ersa/article/details/7550359 DES加密解密结果一般要注意的地方:密钥、偏移...java DES加密的时候: 如果使用这种方式,Cipher cipher = Cipher.getInstance("DES");...
  • 矩阵旋转偏移,Matrix

    2015-11-19 16:33:04
    package com.example.xfermodesdemo; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color;...import android.graphics.Matrix;...import a
  • C#】截取/复制二维数组 使用 System.Buffer.BlockCopy() 方法复制二维数组中的元素时要注意一点:所有的偏移参数都要乘以元素类型的尺寸( sizeof() )。 下面的方法可以从一个二维数组中截取一片数据放到新的二维...
1 2 3 4 5 ... 20
收藏数 13,604
精华内容 5,441
热门标签