C语言 二进制

一、介绍

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。

例如:
int a = 7

数字7 的二进制是 111

二进制的运算规律是  2^0 × 1 + 2^1 ×1 + 2^2 × 1 
从右到左,从2^0以此往后推进,而数字1 表示的是 2^0所在的权数是1


// 1 1 1 
       ↑
       2^0



二、二进制转八进制

//如果说二进制是0和1组成的,只有数字0和1。
//那么八进制则是由0~7之间八个数字组成的,只有数字0~7.

//且我们通过二进制的排放规律得到了一个规律。
//每当需要二进制转化八进制时,每三个二进制数位就可以转化为一个八进制数位

//原因如下:

// 000 -代表数字0
// 001 -代表数字1
// 010 -代表数字2
// 011 -代表数字3
// 100 -代表数字4
// 101 -代表数字5
// 110 -代表数字6
// 111 -代表数字7

// 因为八进制是0~7组成,所以我们可以利用以上的二进制数位来进行转化

// 例如:
// 二进制 - 01 101 011 
// 从右向左每三个可表示一个八进制数位,不够的用0凑 
// 因此我们得到了 011 表示 3  101 表示 5  01表示1
//所以这个二进制数 01 101 011 可以转化为八进制数 0153 其中0表示前缀并不具有任何作用只用于区分

三、二进制转十六进制

// 关于十六进制,我们可以得知 十六进制是由0~15之间的十六个数字组成。
// 但是从数字10到数字15却难以用数字进行表达,所以从10到15用字母表示。
// a -10 b-11 c-12 d-13 e-14 f-15

// 而有了二进制到八进制之间的转化规律,二进制到十六进制也有规律
// 每四个二进制数位就可以转化位一个十六进制数位

// 例如:
// 二进制 - 0110 1011
// 通过二进制的权位相加得到 1011 - b 0110 -6
// 因此 二进制0110 1011 可以表示为十六进制的0x6b 其中0x表示为前缀

猜你喜欢

转载自blog.csdn.net/2301_76445610/article/details/132123795