30/09/2018, 23:44
Độ rộng của dữ liệu thành viên trong class c++
mình có đoạn ct sau
#include <iostream>
using namespace std;
typedef int bit;
class packet{
private:
bit type :1; // độ rộng của thành viên type
bit acknowledge :1;
bit channel :1;
bit sequenceNo :1;
bit moreData :1;
};
độ rộng thành viên là sao nhỉ?
Bài liên quan
help me, up
Nó giới hạn số bit sử dụng của biến đó
Như ở trên thì mỗi biến chỉ dùng 1 bit thôi
http://rextester.com/AAVQ80989
thế giờ mình dùng nó cho các kiểu khác, char, int , float, array, string thì được k bạn?
Mình nhớ là chỉ áp dụng được cho kiểu số nguyên thôi.
Chứ như String, float thì không.
Và người ta gọi cái này là bit field đó bạn
http://en.cppreference.com/w/cpp/language/bit_field
bạn ơi
khi số bít được sử dụng
nếu thiếu bit để biểu diễn số đó ví dụ
2 = 10
nếu độ rộng của trường là >2 bit thì số đó có thể biểu diễn
nhưng trường hợp thiếu bít
5 = 101
nếu độ rộng của trường = 3
thì khi xuất ra nó xuất 1
thì 1 đây là bít đầu tiên hay cuối cùng trong 101
tức là nếu thiếu bit sử dụng để biểu diễn số được gán, thì số hiển thị ra màn hình ( 0 hoặc 1) thì nó lấy bit nào hiển thị ra ,đầu hay cuối hay giữa hay là theo quy tắc nào?
Cái này mình ko rõ lắm.
Nhưng mình thấy nó thường lấy bit từ phải sang trái và bỏ đi những bit thừa kia.
Vd: 1110100
Nếu như biến đó chỉ dùng 4 bit
thì nó lấy 0100. = 4