Hỏi về toán tử >>

Tình hình là chuẩn bị em thi CK môn Tin đc.
Làm thử đề năm ngoái thì hơi chát 1 vài câu.
Câu 24 vì Sao đáp án là A chứ k phải D.
Câu 16 em ra là 64 mà đáp an lại là -64.
Câu 1 thì vong lặp For hoạt động như nào vậy?
Cảm ơn ac đã đọc

    1. Kiểu char từ -128 đến 127.

      0x80 = 128 trở thành -128 -> a >> 1 = -64 -> D

    1. a = -127, b = a << 1 = -254 trở thành 2

      a << 1 print dưới dạng %d -> a << 1 = -254 -> A

3 Likes

tại sao 128 lại trở thành -128, -254 lại trở thành 2.
Anh trai giải thích giúp em vs ạ :’(

bạn tìm hiểu về two-complement nhé.
nếu được thì chịu khó kiếm cuốn sách đọc đi nha. (recommended “computer system programmer perspective”)

2 Likes

128 vượt quá giới hạn (trên) thì nó quay về giá trị nhỏ nhất của kiểu.

Tương tự -129 vượt quá giới hạn (dưới) thì quay về giá trị lớn nhất của kiểu.

2 Likes

Từ đầu tới cuối là two’s complement mà.

Cú pháp của for phải có hai dấu chấm phẩy cơ. Có khi đề sai rồi cũng nên.

1 Like

ý lộn, char có 8 bit ASCII xài có 7, 10000000 là -128 đúng rồi, k tràn bit, vì char là kiểu signed.
Câu 1 thì sai cú pháp.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?