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

Đề tài: Nhập 1 số n kiểu long (dùng ngắt 0X21), rồi đổi n ra xâu ký tự thập phân TP char *s

  1. #1
    Ngày gia nhập
    04 2011
    Bài viết
    6

    Mặc định Nhập 1 số n kiểu long (dùng ngắt 0X21), rồi đổi n ra xâu ký tự thập phân TP char *s

    Đề bài như sau :
    Hãy viết 1 chương trình C/C++ để xử lý các công việc sau đây:
    Nhập 1 số n kiểu long (dùng ngắt 0X21), rồi đổi n ra xâu ký tự thập phân TP char *s .
    Tạo mảng 1 chiều int *x; mà x[i] cũng chính là phần tử s[i] của xâu char *s, nhưng có giá
    trị được tính trong hệ thập lục phân TLP là ½ byte cao bằng giá trị đảo bit của ½ byte thấp,
    còn 1//2 byte thấp bằng ½ byte cao( dùng phép toán logic).vd: s[i]=’5’=0x35=> s[i]=10100011 =0xA3

    Đây là code :
    Code:
    #include <conio.h>
    #include <dos.h>
    #include <stdio.h>
    int main() {
    	 union REGS regs;
    	 unsigned long number = 0;
    	 char isStop = 0;
    	 int numCounts = 0;
    	 unsigned char *s;
    	 unsigned char *x; // Thuat toan nhap vao 1 so
    	 printf("Nhap vao 1 so kieu long: \n");
    	 do{
    		regs.h.ah = 1;
    		int86(0x21,&regs,&regs);
    		if(regs.h.al == 0x0D) isStop = 1;
    		else {
    			if(regs.h.al >= 0x30 && regs.h.al <= 0x39) {
    				number =number*10+(regs.h.al - 0x30);
    				isStop = 0;
    			}
    			else {
    				printf("Nhap vao 1 so kieu long: \n");
    				clrscr();
    			      }
    		     }
    	   } while(!isStop);
    	   clrscr();
    	   printf(" \n so vua nhap: %ld",number);
    	   unsigned long numbTemp = number;
    	   unsigned int i=0;
    	   unsigned char temp; // chuyen tu so kieu long sang mang char.
    	   for(i = 0 ; i < 4 ; i ++) {
    		*(s+i) = numbTemp % 256;
    		numbTemp >>= 8;
    	    } //xu ly theo yeu cau cua de
    	   printf("\n --------- ket qua ---------\n");
    	   printf("\n mang goc: mang da chuyen doi ");
    	   for(i = 0 ; i < 4 ; i++) {
    		 printf("\n %3x",s[i]);
    		 x[i] = s[i] << 4;
    		 x[i] ^= 0xF0;
    		 x[i] += s[i] >> 4;
    		  printf(" %3x ",x[i]);
    	   }
    	   getch();
    	   clrscr();
    	   return 0;
    }
    Mọi người xem giúp sao không hiển thị kết quả

  2. #2
    Ngày gia nhập
    11 2010
    Nơi ở
    Black Hole
    Bài viết
    824

    bài của bạn làm trên mấy byte?
    Come as guest...... stay as family......... because we're smiling together.

  3. #3
    Ngày gia nhập
    04 2011
    Bài viết
    6

    Đề bài có ghi rõ ,chỉ 1 byte

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

  1. Lập trình C Thắc mắc:Kiểu char dùng %s sao không hiển thị được
    Gửi bởi demontoon trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 20-07-2013, 10:30 PM
  2. Bài tập C++ Nhập 1 số n kiểu long( dùng ngắt 0X21), rồi đổi n ra xâu ký tự thập phân TP char *s?
    Gửi bởi nicky2222 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 04-05-2012, 03:06 PM
  3. Lập trình C đổii xâu ra nguyên long dùng ngắt
    Gửi bởi vancong_dl trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 26-03-2012, 09:22 AM
  4. Làm thế nào để xuất đường đi ngắn nhất dùng Floyd?
    Gửi bởi PDV trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 20-12-2008, 12:02 AM
  5. Mọi gười làm ơn giải thích vd ngắt 0X21 đơn giản này?
    Gửi bởi PDV trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 17-08-2008, 10:38 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