c语言-进制转换

C语言-进制

一、基本单位

一个字节Byte -> 内存划分的最小单位
一个字节 = 8bit	
一个比特位(bit)-> 最小单位

二、正负数原码、补码

正数 :原码 == 补码
负数 :补码 ==原码的基础上取反 + 1
例子 :-10      1000 1010 ->取反得 1111 0101 -> 加1得 1111 0110

三、进制转换(十进制转二进制为例)

1 分解法

十进制 :11 = 8(3) + 2(1) + 1(0)= 2^3 + 2^1 +2^0
二进制 :0000 1011	
一个字节最大能表示的数是:
127 = 64(6)+ 32(5)+16(4)+8(3)+4(2)+2(1)+1(0)
127转化为二进制为 : 0111 1111
128转化为二进制需要两个字节 :0000 0000 1000 0000

2 辗转相除法

十进制转化为二进制,一直除2 

3 实例

将150用辗转相除法转换成二进制
在这里插入图片描述
把二进制数按权展开、相加即得十进制数
在这里插入图片描述

1、正整数
分解法、辗转相除法  正数 :补码 = 原码
2、负数 十进制 -> 二进制
-100
1110 0100 :原码
1001 1011 -> 1001 1100  -100的二进制
补码  = 原码的基础上按位取反 + 1

注意:二进制存储的就是补码

3、负数 二进制 -> 十进制
1101 1100  补码
1010 0011 -> 1010 0100  原码  按位取反加一 数为-36

二进制和八进制,十六进制的转换

八进制  010 101 001 -> 2 5 1
十六进制  0010 1111 1001 -> 2 f 9

二进制转化为八进制
在这里插入图片描述
十进制转化为八进制,十六进制
在这里插入图片描述

实际应用

x86系统  32位操作系统  运行内存 :4G	
2^32/1024/1024/1024 = 4G
0x0000几个字节?
0000 0000 0000 0000 二进制 2个字节
4G的内存地址编号 :0x0000 0000 —— 0xffff ffff

x64系统  64位操作系统  运行内存 :128G  ,还有虚拟内存

补充进制标识

二进制  0b   1010	
八进制  0     1224
十六进制0x  32ab
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值