Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Hỏi về "<<" ?

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    4

    Angry Hỏi về "<<" ?

    Visual C# Code:
    1. public void RadixSort(int[] a)
    2. {  
    3.     // our helper array
    4.     int[] t=new int[a.Length];
    5.  
    6.     // number of bits our group will be long
    7.     int r=4; // try to set this also to 2, 8 or 16 to see if it is quicker or not
    8.  
    9.     // number of bits of a C# int
    10.     int b=32;
    11.  
    12.     // counting and prefix arrays
    13.     // (note dimensions 2^r which is the number of all possible values of a r-bit number)
    14.     int[] count=new int[1<<r];
    15.     int[] pref=new int[1<<r];
    16.  
    17.     // number of groups
    18.     int groups=(int)Math.Ceiling((double)b/(double)r);
    19.  
    20.     // the mask to identify groups
    21.     int mask = (1<<r)-1;
    22.  
    23.     // the algorithm:
    24.     for (int c=0, shift=0; c<groups; c++, shift+=r)
    25.     {
    26.         // reset count array
    27.         for (int j=0; j<count.Length; j++)
    28.             count[j]=0;
    29.  
    30.         // counting elements of the c-th group
    31.         for (int i=0; i<a.Length; i++)
    32.             count[(a[i]>>shift)&mask]++;
    33.  
    34.         // calculating prefixes
    35.         pref[0]=0;
    36.         for (int i=1; i<count.Length; i++)
    37.             pref[i]=pref[i-1]+count[i-1];
    38.  
    39.         // from a[] to t[] elements ordered by c-th group
    40.         for (int i=0; i<a.Length; i++)
    41.             t[pref[(a[i]>>shift)&mask]++]=a[i];
    42.  
    43.         // a[]=t[] and start again until the last group
    44.         t.CopyTo(a,0);
    45.     }
    46.     // a is sorted
    47. }

    Ký hiệu "<<" nghĩa là sao??
    Cái vòng " for" cuối cùng mình chẳng hiểu jì hết.">>","&" là sao??
    Bạn nào biết giải thích dùm .Thanks all !!
    Đã được chỉnh sửa lần cuối bởi phamtinkt88 : 08-11-2008 lúc 06:01 PM.

  2. #2
    Ngày gia nhập
    11 2008
    Nơi ở
    Neverland
    Bài viết
    48

    Hix bạn ơi << là toán tử dịch bít đó mà bạn nên đọc lại các phép toán xử lí bít đi . Như đoạn chương trình trên 1 << r tức là dịch r sang trái 1 bít tương đương với sau câu lệnh r=2*r . Còn & là phép AND từng bít anyway .
    I'm superman

  3. #3
    Ngày gia nhập
    10 2008
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi trung_dk070384 Xem bài viết
    Hix bạn ơi << là toán tử dịch bít đó mà bạn nên đọc lại các phép toán xử lí bít đi . Như đoạn chương trình trên 1 << r tức là dịch r sang trái 1 bít tương đương với sau câu lệnh r=2*r . Còn & là phép AND từng bít anyway .
    Dịch sang trái 1 bit là chia 2 chứ bạn.Mình vẫn chưa hiểu??

  4. #4
    Ngày gia nhập
    11 2008
    Nơi ở
    Neverland
    Bài viết
    48

    Hix dịch sang trái một bít tương đương nhân với 2 còn dịch phải 1 bít >> tương đương chia cho 2 . Mình lấy ví dụ số 3 hệ thập phân biểu diễn trong hệ nhị phân là 0000 0011 . Sau phép dịch trái 1 bít kết quả là 0000 0110 tức là 6 trong hệ thập phân . OK bạn đã hiểu chưa còn dịch phải kết quả là 0000 0001 tức 1 .
    I'm superman

  5. #5
    Ngày gia nhập
    10 2008
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi trung_dk070384 Xem bài viết
    Hix dịch sang trái một bít tương đương nhân với 2 còn dịch phải 1 bít >> tương đương chia cho 2 . Mình lấy ví dụ số 3 hệ thập phân biểu diễn trong hệ nhị phân là 0000 0011 . Sau phép dịch trái 1 bít kết quả là 0000 0110 tức là 6 trong hệ thập phân . OK bạn đã hiểu chưa còn dịch phải kết quả là 0000 0001 tức 1 .
    Àh mình lộn.Thanks bạn nhìu lắm!!

Các đề tài tương tự

  1. nghĩa của 3 từ "principals", "artifacts", "securables" là như thế nào?
    Gửi bởi ntbao trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 2
    Bài viết cuối: 02-09-2017, 06:36 PM
  2. Lỗi"error C2275: 'T' : illegal use of this type as an expression" khi dùng "list<T>::iterator it"
    Gửi bởi doicanhden trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 19-01-2012, 01:59 AM
  3. Trả lời: 1
    Bài viết cuối: 01-12-2011, 07:32 PM
  4. Trả lời: 4
    Bài viết cuối: 14-09-2011, 11:01 PM
  5. Problems : " recover tree " with input as " preorder" and "inorder"
    Gửi bởi HoangManhHa1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2011, 10:19 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn