导读:二进制数最高位为符号位,0表示正数、1表示负数
十进制 转 二进制
1、正数:短除法,然后将所有0、1从上到下连起来从右至左摆放,不够八位数的左边补0
【例】将十进制数60、13转为二进制:
2 | 60 ‾ \underline{\text{60}} 60 2 | 13 ‾ \underline{\text{13}} 13
2 | 30 ‾ \underline{\text{30}} 30 ······ 0 2 | 6 ‾ \underline{\text{6}} 6 ······ 1
2 | 15 ‾ \underline{\text{15}} 15 ······ 0 2 | 3 ‾ \underline{\text{3}} 3 ······ 0
2 | 7 ‾ \underline{\text{7}} 7 ······ 1 1 ······ 1
2 | 3 ‾ \underline{\text{3}} 3 ······ 1
1 ······ 1
00111100 00001101
2、负数:绝对值转换为二进制,然后取反再加1
【例】将十进制数-60转为二进制:
60 —→ 00111100 → 11000011 —→ 11000100
绝对值 60二进制 按位取反 +1 -60二进制
二进制 转 十进制
1、正数:从右至左每个数字依次乘以 2 n − 1 2^{n-1} 2n−1,将乘积相加
【例】将二进制数00001101转为十进制:
0 0 0 0 1 1 0 1
x 2 7 2^7 27 x 2 6 2^6 26 x 2 5 2^5 25 x 2 4 2^4 24 x 2 3 2^3 23 x 2 2 2^2 22 x 2 1 2^1 21 x 2 0 2^0 20
—————————————————
0 + 0 + 0 + 0 + 8 + 4 + 0 + 1 = 13
2、负数:按位取反再加1,然后转为十进制,最后添上负号
【例】将二进制数11000100转为十进制:文章来源:https://www.toymoban.com/news/detail-409313.html
11000100 → 00111011 ——→ 00111100 ———→ 60 ———→ -60
二进制负数 按位取反 +1 绝对值二进制 绝对值十进制 十进制负数文章来源地址https://www.toymoban.com/news/detail-409313.html
到了这里,关于【C语言】十进制(正负)与二进制(正负)互相转换的方法技巧:短除法、取反、按位乘……的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!