Diễn Đàn Khoa học Máy tính - ĐH Công nghệ thông tin (ĐHQG TP HCM)
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Diễn Đàn Khoa học Máy tính - ĐH Công nghệ thông tin (ĐHQG TP HCM)

KHOA HỌC MÁY TÍNH-UIT
 
Trang ChínhTrang Chính  PortalPortal  Latest imagesLatest images  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  
Latest topics
» Hướng dẫn thao tác Số nguyên lớn!
[Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeby peterdrew Thu 23 Jun 2011, 21:53

» Rèn luyện Đệ Quy với Bài tập này???
[Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeby tandunglee Sun 12 Jun 2011, 09:25

» VietPon.com -Mạng giảm giá cao cấp của Nhật chính thức ra mắt
[Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeby tuquynh Wed 18 May 2011, 09:10

» Một số bài hướng dẫn về Mảng!
[Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeby Tesulakata Sat 16 Apr 2011, 13:48

» PHẢN XẠ NGẪU NHIÊN LIÊN TỤC-p2 Học tiếng Nhật mới
[Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeby tuquynh Fri 07 Jan 2011, 17:36

» Khuyến học mừng năm mới 2011
[Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeby tuquynh Fri 07 Jan 2011, 17:35

» Khai giảng khóa đàm thoại đặc biệt tại Top Globis
[Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeby tuquynh Mon 11 Oct 2010, 20:31

» Học tiếng nhật miễn phí tại Top Globis
[Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeby tuquynh Mon 11 Oct 2010, 20:31

» Học tiếng Nhật là niềm vui của bạn - Dạy tiếng Nhật là niềm tự hào của Top Globis.
[Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeby tuquynh Mon 11 Oct 2010, 20:30

» Tài liệu học C++ làm game :D
[Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeby peterdrew Fri 02 Jul 2010, 14:04


 

 [Thủ thuật C] Swap thông thường và Swap Inline ASM!

Go down 
Tác giảThông điệp
peterdrew
Vip
Vip
peterdrew


Tổng số bài gửi : 55
Join date : 01/03/2010
Age : 41
Đến từ : Weapon Institute

[Thủ thuật C] Swap thông thường và Swap Inline ASM! Empty
Bài gửiTiêu đề: [Thủ thuật C] Swap thông thường và Swap Inline ASM!   [Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeWed 30 Jun 2010, 18:53

Vấn đề Swap là một trong những vấn đề tương đối nổi bật trong C; vậy hôm nay Peter xin post vài bài về cái này cho anh em tham khảo:
Trước tiên là Swap thông thường trong C, xem code này nhé:
Code:
#include <stdio.h>
#include <conio.h>

void swap(int *x, int *y)
{
    int swapInt;
   
    swapInt = *x;
    *x = *y;
    *y = swapInt;
}

int main()
{
    int a, b;
    printf("Nhap a= ");
    scanf("%d",&a);
    printf("Nhap b= ");
    scanf("%d",&b);
    printf("%d %d\n", a, b);
    swap(&a, &b);           
    printf("%d %d", a, b);
    getch();
    return 0;
}
Về Đầu Trang Go down
http://congdongcviet.com/
peterdrew
Vip
Vip
peterdrew


Tổng số bài gửi : 55
Join date : 01/03/2010
Age : 41
Đến từ : Weapon Institute

[Thủ thuật C] Swap thông thường và Swap Inline ASM! Empty
Bài gửiTiêu đề: Re: [Thủ thuật C] Swap thông thường và Swap Inline ASM!   [Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeWed 30 Jun 2010, 19:13

Hoặc Swap như thế này:
Code:
void  swap(float &a, float  &b)
{
    a -= b = -(b -= a += b);
}
Hoặc kiểu khác:
Code:
void  swap(int &a, int  &b)
{
  a ^= b ^= a ^=b;
}
Hoặc nếu a, b đều khác 0 thì có thể dùng:
Code:
void  swap(int &a, int  &b)
{
  a /= b = ( a *= b ) / b;
}
Về Đầu Trang Go down
http://congdongcviet.com/
peterdrew
Vip
Vip
peterdrew


Tổng số bài gửi : 55
Join date : 01/03/2010
Age : 41
Đến từ : Weapon Institute

[Thủ thuật C] Swap thông thường và Swap Inline ASM! Empty
Bài gửiTiêu đề: Re: [Thủ thuật C] Swap thông thường và Swap Inline ASM!   [Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitimeWed 30 Jun 2010, 19:16

Và một cái mà Peter muốn giới thiệu với các bạn là Swap kiểu Inline ASM:
Code:
#include <stdio.h>
#include <conio.h>
int main()
{
    int a, b;
    printf("Nhap a= ");
    scanf("%d",&a);
    printf("Nhap b= ");
    scanf("%d",&b);
    printf("%d %d\n", a, b);
    _asm
    {
        mov eax,a
            mov ebx,b
            mov a,ebx
            mov b,eax
    }               
    printf("%d %d", a, b);
    getch();
    return 0;
}
Các bạn thử xem có hay không?
Về Đầu Trang Go down
http://congdongcviet.com/
Sponsored content





[Thủ thuật C] Swap thông thường và Swap Inline ASM! Empty
Bài gửiTiêu đề: Re: [Thủ thuật C] Swap thông thường và Swap Inline ASM!   [Thủ thuật C] Swap thông thường và Swap Inline ASM! I_icon_minitime

Về Đầu Trang Go down
 
[Thủ thuật C] Swap thông thường và Swap Inline ASM!
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Inline ASM tính tổng hai số!
» Sổ tay các thủ thuật IT
» Một số bài hướng dẫn về Mảng!
» [Thủ thuật C++] Tìm kiếm google.com.vn bằng mã lệnh!
» Học bổng Hội Sinh viên Việt Nam TP. Hồ Chí Minh năm 2010

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn Đàn Khoa học Máy tính - ĐH Công nghệ thông tin (ĐHQG TP HCM) :: LẬP TRÌNH C :: C Tổng Quát-
Chuyển đến