学习任务
进制转换
进制介绍
常见的进制转换主要包含了十进制、二进制、八进制、十六进制。
- D(decimal)表示这个数是十进制
- B(binary)表示这个数是二进制
- O(octor)表示这个数是八进制
- H(hex)表示这个数是十六进制
十进制的转化
十进制转二进制
转换规则:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来,如下图: 180(十进制)转换二进制为:10110100
十进制转八进制
转换规则:先转为二进制,在通过三取一的方法得到八进制,如180(十进制)转换为二进制为10110100,如下图:而进制10110100转换八进制为264
十进制转十六进制
转换规则:用16整除十进制整数,可以得到一个商和余数;再用16去除商,又会得到一个商和余数,如此进行,直到商为小于16时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,参考对照表将数字依次排列起来,如下图: 180(十进制)转换十六进制为:B+4=B4或者B4H(H为十六进制的后缀)
八进制的转化
八进制转二进制
转换规则:1位拆三位,264转化为二进制等于10110100,如下:
八进制转十进制
转换规则:按权相加法,即将八进制每位上的数乘以位权,264转换为十进制如下:
八进制转十六进制
将八进制转换为二进制,然后再将二进制转换为十六进制
十六进制的转化
十六进制转二进制
转换规则:先参照对照表将字母转换为数字,其次1位拆四位,B4转化为二进制等于10110100,如下:
十六进制转八进制
将十六进制转换为二进制,然后再将二进制转换为八进制
十六进制转十进制
按权相加法,即将八进制每位上的数乘以位权,264转换为十进制如下:
位运算
按位或、按位与
这两个运算符分别是:按位或|,按位与&
1|1 == 1;
1|0 == 1;
0|0 == 0;
1&1 == 1;
1&0 == 0;
0&0 == 0;
按位异或
运算符:^不同的为1,相同的为0,公式如下:
1^1 == 0;
0^0 == 0;
1^0 == 1;
移位运算符
运算符有两个,位左移<<和位右移>> 正数的左移、右移比较简单,就是其二进制形式的所有位向左、右移动多少位,移出去的删掉,空出来的补0,非常简单。 对于负数来说,不同的系统结果可能不一样,左移没有区别,右移可能会不一样
结构体的使用
详情:(。・?・)ノ゙ C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。 结构用于表示一条记录。
定义结构体
struct tag {
member-list
member-list
member-list
...
} variable-list ;
例如:
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} book;
结构体的初始化
#include <stdio.h>
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} book = {"C 语言", "RUNOOB", "编程语言", 123456};
int main()
{
printf("title : %s\nauthor: %s\nsubject: %s\nbook_id: %d\n", book.title, book.author, book.subject, book.book_id);
}
|