| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 关于负数转换为二进制数问题 -> 正文阅读 |
|
[数据结构与算法]关于负数转换为二进制数问题 |
?今天在看C语言位操作时遇见忘记的地方,向右移位时左边的二进制位补0或补1(正数补0,负数补1),在转换负数时有些看不懂负数的二进制,于是复习了负数转二进制的方法。 1、十进制负数转为二进制在二进制总负数以原码的补码形式表达,而正数的补码与原码相同,负数的补码在其反码后+1 这个时候有需要知道反码的概念:正数的反码是所有位取反,而负数的反码的除符号位所有位取反 5在二进制中表示为0b0000 0101, 其反码——0b1111 1010 -5则为 0b1111 1010 +0000 0001=0b1111 1011 我们再以计算机为例,一个int类型的数-1 其在计算机中为4个字节,32位。 ①-1的原码:10000000 00000000 00000000 00000001 ②-1的反码:11111111 11111111 11111111 11111110 ③-1的补码:11111111 11111111 11111111 11111111? 从以上例子中可以看出,-1在计算器中就是全1 而在嵌入式中常用的0XFF=1111 1111 =255,这8位二进制数一般用作和其他数向与,用来保留低八位数据。关于这个应用,后续在项目开发环节遇到了在去仔细研究。 2、符号位为1的十进制数转二进制①除去符号位减1;没有符号位就不要除啦 ②除去符号位,按位取反,其结果就是负数的源码; ③再将源码转成相应的十进制。 0b11111 1011 ->0b1111 1010 -> 0b0000 0101=-5 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:47:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |