结构体位制 中存在 有符号 与 无符号 -- C

来源:互联网 发布:集体智慧编程 kindle 编辑:程序博客网 时间:2024/05/05 12:46


#include <stdio.h>#include <stdlib.h>#include <string.h>/*有符号 结构体1*/struct bits{int b1:5;/*因为是int型,最大设置32位,由于int型是有符号整形,所以这里5位为有符号类型。11111 -110000 -16 01111 1500000 0*/int :2;int b2:2;/*11 -110 -201 100 0*/int b3:1;/*1 -10 0*/};/*无符号 结构体2*/struct bits{unsigned int b1:5;unsigned int :2;unsigned int b2:2;unsigned int b3:1;};int main(){struct bits b;//int a = 0b1111111111111111;int a = 0b0100110101000101;memcpy(&b, &a, sizeof(b));//memcpy(&b, "EM", sizeof(b));printf("0x%X\n", b);printf("b.b1 = %d\n", b.b1);printf("b.b2 = %d\n", b.b2);printf("b.b3 = %d\n", b.b3);}/*int a = 0b0100110101000101;0x4D45b.b1 = 5b.b2 = -2b.b3 = 0int a = 0b1111111111111111;0xFFFFb.b1 = -1b.b2 = -1b.b3 = -1int a = 0b0100110101000101;0x4D45b.b1 = 5b.b2 = 2b.b3 = 0int a = 0b1111111111111111;0xFFFFb.b1 = 31b.b2 = 3b.b3 = 1*/


0 0
原创粉丝点击