C语言高级程序设计——进制算法以及位算符号
语言不够官方;意会;
数据储存运算是以二进制的,二进制数有原码 反码 补码三种。通常所说的二进制就是原码。(语言不官方)
原码 :4的原码可以为:0000 0100;最高位0 可以为符号数
反码:正数和原码相同,负数的符号位不变,其余位0变1,1变0
补码:正数和原码相同,负数的补码在反码的基础上加1(二进制存储是以补码来存的)
二进制八进制互转
二转八:三位转一位;八转二:一位转三位;
二进制十进制互转
二转十:按照8 4 2 1乘以各个位置数字;十转二:整数部分累除2取余数法,小数部分乘2取整法
二进制十六进制互转
二转十六:四位转一位;十六转二:一位转四位;
八进制十进制互转
八转十:同二转十原理相同;十转八:同十转二原理相同
八进制十六进制互转
以二进制为中间量互转。
十进制十六进制互转
十转十六:除以16取余,十六转十:乘以16取整
数据类型
short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。
类型转换
&:位与运算 两边都为1结果才能为1
|: 位或运算 只要一边为1结果就为1
^: 位异或运算 相同结果为0,不同为1
~: 位取反运算 0变1,1变0
<<:左移运算
>>:右移运算
在C语言中 对于无符号数,左移运算时右侧补0;右移运算时左侧补0; 对于有符号数,左移运算时右侧补0;右移运算时左侧补符号位; 在嵌入式中,规定移位都是无符号的(unsigned)。
以上都是知识点,有基础才能看懂!
在C语言中,重要的是多算。
C语言高级程序设计——进制算法以及位算符号的更多相关文章
- C语言学习笔记:15_c语言中的进制操作.c
/* * 15_c语言中的进制操作.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include & ...
- Python语言中各种进制相互转换
目录 Python语言中各种进制相互转换 将二进制.八进制.十进制的数分别转换成十进制的方法 将十进制转换成二进制.八进制.十六进制 Python语言中各种进制相互转换 本文参考自https://ww ...
- 转成p进制算法C语言
今天打比赛的时候竟然下一没有想起来, 实际上是非常简单的. 举例说明: $64 = 2 \times 3^3 + 1 \times 3^2 + 3^0$ 根据秦九韶算法每次提出3,即 $3(2 \ti ...
- c语言将2进制数转化为10进制数(栈的初始化,进栈,出栈)
//c语言描述 将2进制转化为10进制 #include <stdio.h> #include <stdlib.h> #include <math.h> #defi ...
- C语言编程的进制问题问题
在我们的编译器,我用的是ADS 开发平台,现在RTC模块编程时,2410作为上位机,如下代码: n = rBCDDATE;if(n==1) time->day =0x31 ; 波斯历的日期与 ...
- C语言:十进制进制转换为其他进制(思想:查表法)
// // main.c // Hex conversion // // Created by ma c on 15/7/22. // Copyright (c) 2015年 bjsxt. A ...
- C语言:其他进制转换为十进制(方法二)
#include<stdio.h> #include<math.h> #include<string.h> #include<ctype.h> //其他 ...
- C语言:其他进制数转换为十进制(方法一)
#include<stdio.h> #include<math.h> #include<string.h> //其他任意进制转换为十进制 int main() { ...
- C语言之任意进制的转换
我们都知道转换进制是一个让人比较头疼的事情,下面我的代码不是最好的,也就仅仅是一个思路而已,至少我认为使用栈来进行进制转换是比较合适的一种方法,好了,不多叙述了. #include<stdio. ...
随机推荐
- RabbitMQ的几种工作模式
maven: <dependencies> <!-- RabbitMQ的客户端 --> <dependency> <groupId>com.rabbit ...
- asp.net 导入Excel记录到数据库中
常用到的一个数据库导入功能,这样的话就省了很大一部分时间来处理程序上的问题而不是无休止的重复复制粘贴动作. 其他的废话不多说,直接上代码: 前提条件: 根目录下建立uploadfiles文件夹(用于保 ...
- bzoj1037
题解: 定义f[i][j][a][b]表示已经排了i个人 还能拍j个男的(那么就还有m-i+j个是女的) 还能连续拍a个男的,b个女的 我是递推的 考虑后面一个拍男的还是女的 注意要判断边界 代码: ...
- ubuntu16.04安装Nvidia显卡驱动、CUDA8.0和cudNN V6
Nvidia显卡驱动安装 在ubuntu搜索框输入 软件更新,打开 "软件和更新" 对话框,在 附加驱动里选择系统检测到的Nvidia驱动,应用更改,重启系统: 安装完成之后查看G ...
- redis-cluster集群安装(基于redis-3.2.10)
上节主要演示了redis单节点的安装部署,对于数据量更大的服务可以安装redis-cluster进行处理 1. 安装ruby yum install ruby ruby-devel rubygems ...
- Python 高性能并行计算之 mpi4py
MPI 和 MPI4PY 的搭建上一篇文章已经介绍,这里面介绍一些基本用法. mpi4py 的 helloworld from mpi4py import MPI print(&quo ...
- 前端imageBuffer设置图片src(后端到前端直传buffer)
本质为buffer转base64 let bytes = new Uint8Array(imageBuffer.data); let data = ""; let len = by ...
- macOS -- 如何通过终端开启/关闭SSH
在macOS中(较新版),基本都会配置了SSH,能完成我们开发中绝大部分功能,所以不需要再去使用第三方的软件去操作. 不过SSH守护进程是默认禁用的,我们需要手动开启 1. 查看是否开始SSH功能 s ...
- Nginx获取自定义头部header的值
http://blog.csdn.net/xbynet/article/details/51899286?_t=t http://shift-alt-ctrl.iteye.com/blog/23314 ...
- js中caller和callee属性详解
一.caller属性返回一个对函数的引用,该函数调用了当前函数.functionName.callerfunctionName 对象是所执行函数的名称.说明对于函数来说,caller 属性只有在函数执 ...