<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-204  評論-90  文章-8  trackbacks-0
     

    摘自:http://edu.codepub.com/2009/0929/15909.php
    應用舉例
    (1) 判斷int型變量a是奇數還是偶數           
    a&1  = 0 偶數
          a&1 =  1 奇數
    (2) 取int型變量a的第k位 (k=0,1,2……sizeof(int)),即a>>k&1
    (3) 將int型變量a的第k位清0,即a=a&~(1 < <k)
    (4) 將int型變量a的第k位置1, 即a=a ¦(1 < <k)
    (5) int型變量循環左移k次,即a=a < <k ¦a>>16-k  (設sizeof(int)=16)
    (6) int型變量a循環右移k次,即a=a>>k ¦a < <16-k  (設sizeof(int)=16)
    (7)整數的平均值
    對于兩個整數x,y,如果用 (x+y)/2 求平均值,會產生溢出,因為 x+y 可能會大于INT_MAX,但是我們知道它們的平均值是肯定不會溢出的,我們用如下算法:
    int average(int x, int y)  //返回X,Y 的平均值
    {   
        return (x&y)+((x^y)>>1);
    }
    (8)判斷一個整數是不是2的冪,對于一個數 x >= 0,判斷他是不是2的冪
    boolean power2(int x)
    {
        return ((x&(x-1))==0)&&(x!=0);
    }
    (9)不用temp交換兩個整數
    void swap(int x , int y)
    {
        x ^= y;
        y ^= x;
        x ^= y;
    }
    (10)計算絕對值
    int abs( int x )
    {
    int y ;
    y = x >> 31 ;
    return (x^y)-y ;        //or: (x+y)^y
    }
    (11)取模運算轉化成位運算 (在不產生溢出的情況下)
            a % (2^n) 等價于 a & (2^n - 1)
    (12)乘法運算轉化成位運算 (在不產生溢出的情況下)
            a * (2^n) 等價于 a < < n
    (13)除法運算轉化成位運算 (在不產生溢出的情況下)
            a / (2^n) 等價于 a>> n
            例: 12/8 == 12>>3
    (14) a % 2 等價于 a & 1       
    (15) if (x == a) x= b;
                else x= a;
            等價于 x= a ^ b ^ x;
    (16) x 的 相反數 表示為 (~x+1)


    實例

        功能              ¦          示例            ¦    位運算
    ----------------------+---------------------------+--------------------
    去掉最后一位          ¦ (101101->10110)          ¦ x >> 1
    在最后加一個0        ¦ (101101->1011010)        ¦ x < < 1
    在最后加一個1        ¦ (101101->1011011)        ¦ x < < 1+1
    把最后一位變成1      ¦ (101100->101101)          ¦ x ¦ 1
    把最后一位變成0      ¦ (101101->101100)          ¦ x ¦ 1-1
    最后一位取反          ¦ (101101->101100)          ¦ x ^ 1
    把右數第k位變成1      ¦ (101001->101101,k=3)      ¦ x ¦ (1 < < (k-1))
    把右數第k位變成0      ¦ (101101->101001,k=3)      ¦ x & ~ (1 < < (k-1))
    右數第k位取反        ¦ (101001->101101,k=3)      ¦ x ^ (1 < < (k-1))
    取末三位              ¦ (1101101->101)            ¦ x & 7
    取末k位              ¦ (1101101->1101,k=5)      ¦ x & ((1 < < k)-1)

    取右數第k位          ¦ (1101101->1,k=4)          ¦ x >> (k-1) & 1

    把末k位變成1          ¦ (101001->101111,k=4)      ¦ x ¦ (1 < < k-1)
    末k位取反            ¦ (101001->100110,k=4)      ¦ x ^ (1 < < k-1)
    把右邊連續的1變成0    ¦ (100101111->100100000)    ¦ x & (x+1)
    把右起第一個0變成1    ¦ (100101111->100111111)    ¦ x ¦ (x+1)
    把右邊連續的0變成1    ¦ (11011000->11011111)      ¦ x ¦ (x-1)
    取右邊連續的1        ¦ (100101111->1111)        ¦ (x ^ (x+1)) >> 1
    去掉右起第一個1的左邊 ¦ (100101000->1000)        ¦ x & (x ^ (x-1))
    判斷奇數      (x&1)==1
    判斷偶數 (x&1)==0       

    例如求從x位(高)到y位(低)間共有多少個1

    public static int FindChessNum(int x, int y, ushort k)
            {
                int re = 0;
                for (int i = y; i <= x; i++)
                {
                    re += ((k >> (i - 1)) & 1);
                }
                return re;
            }

    posted @ 2010-10-29 12:21 一凡 閱讀(1469) | 評論 (0)編輯 收藏

    目錄結構:com/test/JniTest.java

    package : com.test

    javac com/test/JniTest.java

    javah -classpath ./ -jni com.test.JniTest

    在當前目錄下生成:
    com_test_JniTest.h

    posted @ 2010-10-27 12:17 一凡 閱讀(344) | 評論 (0)編輯 收藏

    方法一:

            進入MySQL安裝目錄 打開MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改為 max_connections=1000 ,服務里重起MySQL即可
            注意:如果新增max_connections,必須放在mysqld下,如:       

      [mysqld]
      max_connections
    =300

    方法二:
            登錄至數據庫,執行以下命令:      

    set GLOBAL max_connections=500;
    show variables 
    like 'max_con%';
    posted @ 2010-09-16 14:08 一凡 閱讀(256) | 評論 (0)編輯 收藏

    需求:廣告按權重展現

    基本算法描述如下:
    1、每個廣告增加權重
    2、將所有匹配廣告的權重相加sum,
    3、以相加結果為隨機數的種子,生成1~sum之間的隨機數rd
    4、.接著遍歷所有廣告,訪問順序可以隨意.將當前節點的權重值加上前面訪問的各節點權重值得curWt,判斷curWt >=  rd,如果條件成立則返回當前節點,如果不是則繼續累加下一節點. 直到符合上面的條件,由于rd<=sum 因此一定存在curWt>=rd。
    特別說明:
            此算法和廣告的順序無關

    測試代碼如下:

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.LinkedHashMap;
    import java.util.List;
    import java.util.Map;

    public class Test {

        
    /**
         * 
    @param args
         
    */

        @SuppressWarnings(
    "unchecked")
        
    public static void main(String[] args) {
            
            List
    <Node> arrNodes = new ArrayList<Node>();
            Node n 
    = new Node(10"測試1");
            arrNodes.add(n);
            n 
    = new Node(20"測試2");
            arrNodes.add(n);
            n 
    = new Node(30"測試3");
            arrNodes.add(n);
            n 
    = new Node(40"測試4");
            arrNodes.add(n);
            
            
    //Collections.sort(arrNodes, new Node());
            Map<String, Integer> showMap = null;
            
    int sum = getSum(arrNodes);
            
    int random = 0;
            Node kw 
    = null;
            
    for(int k = 0; k < 20; k++{
                showMap 
    = new LinkedHashMap<String, Integer>();
                
    for(int i = 0; i < 100; i++{
                    random 
    = getRandom(sum);
                    kw 
    = getKW(arrNodes, random);
                    
    if(showMap.containsKey(kw.kw)) {
                        showMap.put(kw.kw, showMap.get(kw.kw) 
    + 1);
                    }
     else {
                        showMap.put(kw.kw, 
    1);
                    }

                    
    //System.out.println(i + " " +random + " " + getKW(arrNodes, random));
                }

                System.out.print(k 
    + " ");
                System.out.println(showMap);
            }

        }

        
        
    public static Node getKW(List<Node> nodes, int rd) {
            Node ret 
    = null;
            
    int curWt = 0;
            
    for(Node n : nodes){
                curWt 
    += n.weight;
                
    if(curWt >= rd) {
                    ret 
    = n;
                    
    break;
                }

            }

            
    return ret;
        }

        
    public static int getSum(List<Node> nodes) {
            
    int sum = 0;
            
    for(Node n : nodes)
                sum 
    += n.weight;
            
    return sum;
        }

        
    public static int getRandom(int seed) {
            
    return (int)Math.round(Math.random() * seed);
        }

    }

    class Node implements Comparator{
        
    int weight = 0;
        String kw 
    = "";
        
        
    public Node() {}
        
        
    public Node(int wt, String kw) {
            
    this.weight = wt;
            
    this.kw = kw;
        }

        
    public String toString(){
            StringBuilder sbBuilder 
    = new StringBuilder();
            sbBuilder.append(
    " weight=").append(weight);
            sbBuilder.append(
    " kw").append(kw);
            
    return sbBuilder.toString();
        }

        
    public int compare(Object o1, Object o2) {
            Node n1 
    = (Node)o1;
            Node n2 
    = (Node)o2;
            
    if(n1.weight > n2.weight)
                
    return 1;
            
    else 
                
    return 0;
        }

    }
    posted @ 2010-08-31 17:08 一凡 閱讀(3396) | 評論 (0)編輯 收藏
    #!/bin/bash

    MYSQL_HOME
    ="/home/work/local/mysql5"
    MYSQL_SRC_HOME
    ="mysql-5.1.38"

    cd 
    $MYSQL_SRC_HOME
    make clean
    ./configure \
    --prefix=$MYSQL_HOME \
    --with-tcp-port=3308 \
    --enable-thread-safe-client \
    --enable-local-infile \
    --with-unix-socket-path=$MYSQL_HOME/mysql.sock \
    --with-charset=gbk \
    --with-innodb \
    --with-extra-charsets=gbk,utf8,ascii,big5,latin1 \
    --enable-static \
    --enable-assemble

    make
    make install

    cd 
    $MYSQL_HOME
    cp 
    ./share/mysql/my-huge.cnf ./my.cnf

    ./bin/mysql_install_db
    ./bin/mysqld_safe &

    posted @ 2010-08-30 16:43 一凡 閱讀(238) | 評論 (0)編輯 收藏

    設計與開發應用服務器(一)------常見模式:http://blog.csdn.net/cutesource/archive/2010/08/02/5783213.aspx

    posted @ 2010-08-30 14:41 一凡 閱讀(164) | 評論 (0)編輯 收藏
    分布式設計與開發http://www.javaeye.com/topic/748178
    posted @ 2010-08-30 14:40 一凡 閱讀(138) | 評論 (0)編輯 收藏

    構建高性能web之路------mysql讀寫分離實戰


     

    posted @ 2010-08-30 14:33 一凡 閱讀(189) | 評論 (0)編輯 收藏

    摘自:http://hi.baidu.com/zhouqleilo/blog/item/f76297127ed0c9085aaf5330.html

    經常使用的正則表達式

    ^                                 行首

    $                                 行尾

    .            任意一個字符

    *            任意多個字符

    \            轉義字符

    ^ [ t h e ]                      t h e開頭行

    [ S s ] i g n a [ l L ]              匹配單詞s i g n a ls i g n a LS i g n a lS i g n a L

    [Ss]igna[lL]".                同上,但加一句點

    [ m a y M A Y ]             包含m a y大寫或小寫字母的行

    ^ U S E R $                  只包含U S E R的行

    [tty]$                           t t y結尾的行

    \ .                                帶句點的行

    ^ d . . x . . x . . x          對用戶、用戶組及其他用戶組成員有可執行權限的目錄

    ^ [ ^ l ]                        排除關聯目錄的目錄列表

    ^[^d]                ls –l | grep ^[^d] 只顯示非文件夾的文件         

    [ . * 0 ]                       0之前或之后加任意字符

    [ 0 0 0 * ]                  0 0 0或更多個

    [ iI]                             大寫或小寫I

    [ i I ] [ n N ]                大寫或小寫in

    [ ^ $ ]                         空行

    [ ^ . * $ ]                     匹配行中任意字符串

    ^ . . . . . . $                  包括6個字符的行

    [a- zA-Z]                     任意單字符

    [ a - z ] [ a - z ] *         至少一個小寫字母

    [ ^ 0 - 9 " $ ]                非數字或美元標識

    [ ^ 0 - 0 A - Z a - z ]     非數字或字母

    [ 1 2 3 ]                       13中一個數字

    [ D d ] e v i c e            單詞d e v i c eD e v i c e

    D e . . c e                    前兩個字母為D e,后跟兩個任意字符, 最后為c e

    " ^ q                            ^ q開始行

    ^ . $                            僅有一個字符的行

    ^".[0-9][0-9]                以一個句點和兩個數字開始的行

    ' " D e v i c e " '            單詞d e v i c e

    D e [ V v ] i c e \ .               單詞D e v i c ed e v i c e

    ([0-9]{2}/[a-zA-Z]{3}/[0-9]{4})      對 日期格式08/Jun/2010

    ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) I P地址格式

    [ ^ . * $ ]                     匹配任意行

    [A-Za-z]*            匹配所有單詞

    功能說明:查找文件里符合條件的字符串。

    語  法:grep [-abcEFGhHilLnqrsvVwxy][-A<顯示列數>][-B<顯示列數>][-C<顯示列數>] [-d<進行動作>][-e<范本樣式>][-f<范本文件>][--help][范本樣式][文件或目錄...]

    補充說明:grep指令用于查找內容包含指定的范本樣式的文件,如果發現某文件的內容符合所指定的范本樣式,預設 grep指令會把含有范本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名為“-”,則grep指令會從標準輸入設備讀取數據。

    參  數:
       -a或--text    不要忽略二進制的數據。
       -A<顯示列數>或--after-context=<顯示列數>    除了顯示符合范本樣式的那一列之外,并顯示該列之后的內容。
       -b或--byte-offset    在顯示符合范本樣式的那一列之前,標示出該列第一個字符的位編號。
       -B<顯示列數>或--before-context=<顯示列數>    除了顯示符合范本樣式的那一列之外,并顯示該列之前的內容。
       -c或--count    計算符合范本樣式的列數。
       -C<顯示列數>或--context=<顯示列數>或-<顯示列數>    除了顯示符合范本樣式的那一列之外,并顯示該列之前后的內容。
       -d<進行動作>或--directories=<進行動作>    當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令將回報信息并停止動作。
       -e<范本樣式>或--regexp=<范本樣式>    指定字符串做為查找文件內容的范本樣式。
       -E或--extended-regexp    將范本樣式為延伸的普通表示法來使用。
       -f<范本文件>或--file=<范本文件>    指定范本文件,其內容含有一個或多個范本樣式,讓grep查找符合范本條件的文件內容,格式為每列一個范本樣式。
       -F或--fixed-regexp    將范本樣式視為固定字符串的列表。
       -G或--basic-regexp    將范本樣式視為普通的表示法來使用。
       -h或--no-filename    在顯示符合范本樣式的那一列之前,不標示該列所屬的文件名稱。
       -H或--with-filename    在顯示符合范本樣式的那一列之前,表示該列所屬的文件名稱。
       -i或--ignore-case    忽略字符大小寫的差別。
       -l或--file-with-matches    列出文件內容符合指定的范本樣式的文件名稱。
       -L或--files-without-match    列出文件內容不符合指定的范本樣式的文件名稱。
       -n或--line-number    在顯示符合范本樣式的那一列之前,標示出該列的列數編號。
       -q或--quiet或--silent    不顯示任何信息。
       -r或--recursive    此參數的效果和指定“-d recurse”參數相同。
       -s或--no-messages    不顯示錯誤信息。
       -v或--revert-match    反轉查找。
       -V或--version    顯示版本信息。
       -w或--word-regexp    只顯示全字符合的列。
       -x或--line-regexp    只顯示全列符合的列。
       -y    此參數的效果和指定“-i”參數相同。
       --help    在線幫助。

    posted @ 2010-07-15 19:40 一凡 閱讀(748) | 評論 (0)編輯 收藏
    摘自:http://learn.akae.cn/media/ch03s03.html

    Man Page

    Man Page是Linux開發最常用的參考手冊,由很多頁面組成,每個頁面描述一個主題,這些頁面被組織成若干個Section。FHS(Filesystem Hierarchy Standard)標準規定了Man Page各Section的含義如下:

    表 3.1. Man Page的Section

    Section 描述
    1 用戶命令,例如ls(1)
    2 系統調用,例如_exit(2)
    3 庫函數,例如printf(3)
    4 特殊文件,例如null(4)描述了設備文件/dev/null/dev/zero的作用
    5 系統配置文件的格式,例如passwd(5)描述了系統配置文件/etc/passwd的格式
    6 游戲
    7 其它雜項,例如bash-builtins(7)描述了bash的各種內建命令
    8 系統管理命令,例如ifconfig(8)

    注意區分用戶命令和系統管理命令,用戶命令通常位于/bin/usr/bin目錄,系統管理命令通常位于/sbin/usr/sbin目錄,一般用戶可以執行用戶命令,而執行系統管理命令經常需要root權限。系統調用和庫函數的區別將在第 2 節 “main函數和啟動例程”說明。

    Man Page中有些頁面有重名,比如敲man printf命令看到的并不是C函數printf,而是位于第1個Section的系統命令printf,要查看位于第3個Section的printf函數應該敲man 3 printf,也可以敲man -k printf命令搜索哪些頁面的主題包含printf關鍵字。本書會經常出現類似printf(3)這樣的寫法,括號中的3表示Man Page的第3個Section,或者表示“我這里想說的是printf庫函數而不是printf命令”。

    posted @ 2010-06-21 15:20 一凡 閱讀(403) | 評論 (0)編輯 收藏
    僅列出標題
    共21頁: First 上一頁 3 4 5 6 7 8 9 10 11 下一頁 Last 
    主站蜘蛛池模板: 亚洲JIZZJIZZ妇女| 色se01短视频永久免费| 亚洲自偷自偷在线成人网站传媒| 亚洲日韩人妻第一页| 国产三级在线观看免费| 日本免费一区二区久久人人澡 | 一区二区三区精品高清视频免费在线播放| 亚洲成人激情在线| 亚洲国产综合精品中文字幕 | 国产l精品国产亚洲区在线观看| 日本特黄特色免费大片| 免费看成人AA片无码视频羞羞网| 中文字幕一区二区免费| 免费无遮挡无码视频在线观看 | 国产情侣激情在线视频免费看| 久久九九免费高清视频| 色网站在线免费观看| 亚洲色偷精品一区二区三区| 亚洲成aⅴ人片在线观| 亚洲国产国产综合一区首页| 亚洲日产韩国一二三四区| 亚洲精品成人a在线观看| 国产免费av片在线无码免费看| 成人毛片免费网站| 久久笫一福利免费导航| 国产成人精品免费视频大| 1000部免费啪啪十八未年禁止观看 | 亚洲视频在线免费| 人妻无码中文字幕免费视频蜜桃| 羞羞视频免费网站含羞草| 亚洲精品无码av片| 亚洲sm另类一区二区三区| 亚洲A∨精品一区二区三区下载| 亚洲欧美日韩综合久久久| 亚洲日韩看片无码电影| 亚洲成av人在线观看网站| 男女超爽视频免费播放| 一个人看的在线免费视频| 一区二区三区在线免费| 国产免费AV片在线观看播放| 久久精品免费大片国产大片|