进制转换/码制转换和计算机大端和小端模式
2015-08-08 17:02
239 查看
十六进制和二进制之间的转换
十六进制由0-9和A-F组成,对应于十进制的0-15,对应于二进制为4位;故十六进制和二进制之间的转换比较直接,示例如下:
1. 将二进制转换为十六进制:每4个二进制位为一个段转换为相应的十六进制,如: 二进制数(0001 0010 0011 0100)转换为十六进制数(0x1234);
2. 将十六进制转换为二进制:每个十六进制位对应4个二进制位,直接进行转换,如:十六进制数(0xFD159B)转换为二进制数(1111 1101 0001 0101 1001 1011);
故每两个十六进制位为1个字节,即8位;
八进制和二进制之间的转换
十进制转换为二进制/八进制/十六进制采用除法取余的方式;二进制/八进制/十六进制转换为十进制采用加权乘积之和的形式;
如果机器字长为n,则一个数的原码就是一个n位的二进制有符号数,其中,最高位为符号位,0表示正数,1表示负数。剩下的n-1位为数值位,表示真值的绝对值。凡是不足n-1位的,小数在最低位右边补零,整数在最高位左边补零。示例如下:
X=+101011,X的原码为:0010 1011,X=-101011,X的原码为:1010 1011
注意:正数的原码、反码和补码都一样;
反码:
补码:
正数的补码是其本身,负数的补码即是在其反码的基础上加1即可;
移码:
不管是正数还是负数,在补码的基础上按位取反即可;
总结:在计算机中,正数是用其原码表示的,也可以说是补码,因为正数的原码和补码相同;负数是用其补码表示的;比如:5在计算机中表示为:(0000 0101);-5在计算机中表示为:(1111 1011);
计算机大端模式和小端模式
所谓大端模式即是内存的低地址空间存储数据的高位,高地址空间存储数据的低位;内存由低到高访问时,首先碰到的是数据的高位,类似于将数据当做字符串;而小端模式则刚好相反;
小端是低位在低字节,高位在高字节;示例:
0x12345678,在大端模式中,高位为0x12,在小端模式中,高位为0x78;注意均为1个字节;
十六进制由0-9和A-F组成,对应于十进制的0-15,对应于二进制为4位;故十六进制和二进制之间的转换比较直接,示例如下:
1. 将二进制转换为十六进制:每4个二进制位为一个段转换为相应的十六进制,如: 二进制数(0001 0010 0011 0100)转换为十六进制数(0x1234);
2. 将十六进制转换为二进制:每个十六进制位对应4个二进制位,直接进行转换,如:十六进制数(0xFD159B)转换为二进制数(1111 1101 0001 0101 1001 1011);
故每两个十六进制位为1个字节,即8位;
八进制和二进制之间的转换
八进制由0-7组成,对应于十进制的0-7,对应于二进制为3位;故八进制和二进制之间的转换也比较直接,示例如下: 1. 将二进制转换为八进制:每3个二进制位为一个段转换为相应的一个十六进制位,如:二进制数(0001001000110100),分段后为(0 001 001 000 110 100),转换为八进制数(011064); 2. 将八进制转换为二进制:每个八进制位对应3个二进制位,直接进行转换即可,示例略;
十进制转换为二进制/八进制/十六进制采用除法取余的方式;二进制/八进制/十六进制转换为十进制采用加权乘积之和的形式;
码制转换之原码/反码/补码
原码:如果机器字长为n,则一个数的原码就是一个n位的二进制有符号数,其中,最高位为符号位,0表示正数,1表示负数。剩下的n-1位为数值位,表示真值的绝对值。凡是不足n-1位的,小数在最低位右边补零,整数在最高位左边补零。示例如下:
X=+101011,X的原码为:0010 1011,X=-101011,X的原码为:1010 1011
注意:正数的原码、反码和补码都一样;
反码:
正数的反码是其本身,负数的反码即是在原码的基础上符号位保持不变,其他位按位取反即可; 示例;X=-101011,X的原码为:1010 1011,X的反码为:1101 0100;
补码:
正数的补码是其本身,负数的补码即是在其反码的基础上加1即可;
移码:
不管是正数还是负数,在补码的基础上按位取反即可;
总结:在计算机中,正数是用其原码表示的,也可以说是补码,因为正数的原码和补码相同;负数是用其补码表示的;比如:5在计算机中表示为:(0000 0101);-5在计算机中表示为:(1111 1011);
计算机大端模式和小端模式
所谓大端模式即是内存的低地址空间存储数据的高位,高地址空间存储数据的低位;内存由低到高访问时,首先碰到的是数据的高位,类似于将数据当做字符串;而小端模式则刚好相反;
小端是低位在低字节,高位在高字节;示例:
0x12345678,在大端模式中,高位为0x12,在小端模式中,高位为0x78;注意均为1个字节;
相关文章推荐
- 用C++实现网络编程---抓取网络数据包的实现方法
- iOS开发网络篇—网络编程基础(一)
- 记我的WiFi音箱之一个网络在线播放及本地播放音乐器(四)
- http协议学习和总结系列
- hdu 4049 2011北京赛区网络赛J 状压dp ***
- HTTP协议详解
- TCP、UDP、Socket
- 手机开发之----网络检测
- iOS多线程与网络开发之NSURLCache
- 基于UDP的网络通讯(socket)
- iOS多线程与网络开发之使用POST上传JSON数据 & 多值参数
- HTTP协议-无状态性
- Java与Http协议
- 基于TCP的网络通信(SCOKET)
- iOS多线程与网络开发之小文件上传
- HTTP请求:GET与POST方法的区别
- Android网络连接之HttpURLConnection和HttpClient
- hdu-3416-Marriage Match IV-(求最小割)-网络流模板
- Socket连接与HTTP连接
- android之HttpURLConnection