首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【愚公系列】软考高级-架构设计师 004-数据的表示

字符和字符串:通过字符编码标准(如ASCII、Unicode)将字符和字符串转换为二进制表示。ASCII使用7或8位表示一个字符,而Unicode支持全球所有的字符集,使用更多位来表示一个字符。...CPU通过操作这些二进制数据来执行程序指令。不同类型的数据(如整数、浮点数、字符)在内存中占用的空间大小不同,取决于其数据类型和表示方式。3.数据表示的重要性数据表示法影响数据处理的效率和精度。...例如,在一个8位的二进制数中,符号位是最左边的一位。原码的格式假设我们有一个8位的二进制数来表示一个有符号整数,其结构如下:最左边的一位是符号位(S),其中0代表正数,1代表负数。...补码不仅处理了原码和反码表示法中存在的一些问题(如双零问题),而且简化了包括加法和减法在内的算术运算。补码的定义和计算:正数的补码:正数的补码与其原码(即直接的二进制表示)相同。...这是因为在补码系统中,一个负数的补码可以通过取其正数的二进制反码(即所有位取反)并加一来获得。这样,加法和减法可以使用相同的硬件操作来执行,只需将减法操作中的一个操作数取补码即可。

14000
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【优选算法篇】计算机背后的秘密武器:位运算的超能力(下篇)

    经典应用场景:博客列举了位运算在一些常见问题中的应用,如判断一个数是否为2的幂、计算一个数的二进制表示中1的个数、交换两个数等。通过这些实例,展示了位运算的实际效果和灵活性。...题目1:两整数之和 题目链接:371. 两整数之和 - 力扣(LeetCode) 题目描述: 2.1 算法思路: 1. 加法的位运算原理 在计算机中,整数加法通常是通过“位运算”来实现的。...b = 5,我们来看看具体的执行过程: 初始值: a = 3(二进制:0011) b = 5(二进制:0101) 第一步: x = a ^ b = 0011 ^ 0101 = 0110(不带进位的和...2.3.4 解法 5:使用模拟加法运算(不使用位运算) 这种方法通过构造一个二进制加法的循环,模拟加法过程。它不直接利用位运算,但思想上是通过借位和进位来实现加法。...暴力法(解法 3)直接使用加法运算符,虽然是最简单的解法,但不符合题目的要求。 机器加法法(解法 4)是对机器加法的模拟,实际上与位运算法的实现类似,但展示了加法如何在硬件中执行。

    7910

    python0072_整数类型_int_integer_整型变量

    int 含义 int 全称 integer 意思是整的数和零碎的相反 一个就是一个两个就是两个没有一个半​添加图片注释,不超过 140 字(可选)int 代表 整数类型 简称 整型i_age是一个整型变量...运算逻辑 首先就是 运算的逻辑字符串的加法是 拼接(cancatenate)在一起整数的加法是 按照数字的值 进行加法运算​添加图片注释,不超过 140 字(可选)为什么数字 int 类型 能够按照值...整型数字 这个变量是一个整型的变量 定义的时候产生这个变量的时候就是为了运算​添加图片注释,不超过 140 字(可选)整型变量 和字符串变量不同 字符串变量 是一个字符的串一开始就是 为了字符串查找、...二进制十进制转化 (41)10 进制 和 (101001)2 进制 是相等的 互相之间可以相互转化其中的bin 代表 binary 二进制​添加图片注释,不超过 140 字(可选)不论用 10 个手指头...是 直接存储二进制形式的可以用 int()函数 把 2进制字符串 转化为 十进制整数 int() 接受两个变量 待转化的字符串字符串使用的进制 二进制 和 十进制之间 可以互相转化 bin(41)

    18020

    剑指offer | 面试题51:不用加减乘除做加法

    1 出现的次数 剑指offer | 面试题35:把数组排成最小的数 剑指offer | 面试题36:丑数 剑指offer | 面试题37:第一个只出现一次的字符 剑指offer | 面试题38:数组中的逆序对...剑指offer | 面试题43:和为s的两个数字 剑指offer | 面试题44:和为s的连续整数序列 剑指offer | 面试题45:翻转单词顺序 剑指offer | 面试题46:左旋转字符串 剑指.../nateshao/leetcode/blob/main/algo-notes/src/main/java/com/nateshao/sword_offer/topic_50_lsumNums/Solution.java...不用加减乘除做加法 “题目描述 :写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。...不用加减乘除做加法 * 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。

    26620

    每日一题 (不用加减乘除做加法,找到数组中消失的数字)

    不用加减乘除做加法_牛客题霸_牛客网 (nowcoder.com) 可以使用位运算符实现两个整数的加法: 在二进制加法中,我们通常使用“逐位相加”的方法来模拟常规加法的过程。...这里 b 实际上充当了一个“进位标志”的角色。只要 b 不为0,说明还有进位需要处理,所以循环会继续执行。 具体来说: 当 b 为0时,意味着没有进位,加法运算已经完成。...这种算法通常被称为“无进位加法”或“二进制加法”,它模仿了人类手动进行二进制数加法的过程。通过不断迭代,直到没有进位为止(即 b 为0),最终得到两个二进制数的和。 简而言之,while (b !...在二进制加法中,b = carry 加法中,当两个数字相加的和超过9时,我们会进一位到更高的数位。...在二进制中,1 + 1 = 10,所以产生了一个进位(1)和一个输出位(0)。 左移一位(<< 1): 在计算机中,左移操作等同于乘以2。因此,将进位值左移一位实际上是将它乘以2。

    9110

    基本数据类型:Kotlin、Dart (Flutter)、Java 和 C++ 的比较

    在本文中,我们将比较 Kotlin、Dart (Flutter)、Java 和 C++ 中的基本数据类型,并探讨有符号和无符号整数以及二进制补码的表示。...语言 有符号整数 无符号整数 C++ 是 是 Java 是 否 Kotlin 是 是(从1.5版本开始) Dart (Flutter) 是 否 三、二进制补码表示 在计算机中,有符号整数通常使用二进制补码表示...通过补码,我们可以将加法和减法统一为加法操作,简化了计算机的硬件设计。同时,补码也解决了原码和反码表示法中负零的问题。...例如,如果将一个大的整数类型(如64位整数)转换为一个小的整数类型(如32位整数),如果大整数的值超过了小整数可以表示的范围,那么将丢失一些信息。...同样,如果将一个有符号整数转换为无符号整数,或者将一个无符号整数转换为有符号整数,也可能会丢失一些信息。 浮点数和整数之间的转换:当将一个浮点数转换为整数时,小数部分将被丢弃,这可能会导致精度丢失。

    13410

    【Python】Python中的运算符与注释

    ,下面我们就来分别看一下它们之间都有哪些区别; 3.1 '+'——加法运算符 在C/C++中,加法操作符可以用于整数+整数、整数+浮点数、浮点数+浮点数、指针+整数、字符+整数、字符+字符、字符串+整数...: 如果将C/C++中的加法操作总结一下的话,实际上加法操作只能运用于两种情况: 数字与数字之间的加法——整型、字符都属于数字 地址与整数之间的加法——字符串、指针都属于地址 但是在Python中已经舍弃了指针这种数据类型...,并将字符与字符串合并成为了单独的字符串类型,因此Python中的加法操作除了可以执行数字之间的加法外,还能够执行字符串之间的加法以及列表之间的加法,如下所示: 数字之间的加法得到的结果与数学上的加法运算是一致的...'*'——乘法运算符 在Python中,乘法运算符除了能够实现数字之间的乘法以外还可以实现字符串与整数以及列表与整数的乘法,如下所示: 可以看到,数字之间的乘法就是正常的数字相乘,但是字符串与整数之间的乘法以及列表与整数之间的乘法却是字符串和列表的复制操作...: 字符串a 乘以 整数n 会获得一个将a复制了n次的新字符串; 列表a 乘以 整数n 会获得一个将a复制了n次的新列表; 因此Python中的乘法运算符的用法我们可以总结为两点: 数字之间的乘法运算

    9210

    财务、支付系统中的大数Decimal

    舍入误差和精度问题示例 假设有一个简单的财务交易,涉及货币加法: func main() { amount1 := 0.1 amount2 := 0.2 total := amount1 + amount2...「精确的四舍五入」: Decimal执行四舍五入时通常更符合人们的数学预期,因为它避免了浮点数因二进制表示而引入的奇偶舍入误差。...「适用领域」: Decimal广泛应用于金融和财务领域,用于处理货币、税率、股票价格和利率等数据。它还在科学计算中用于高精度计算,如天文学、物理学和工程学。...以下是一个简单的示例,展示如何在Java中使用」BigDecimal**: import java.math.BigDecimal; public class DecimalExample {...以下是一个示例,展示如何在 Go 中使用 「Decimal」 类型: package main import ( "fmt" "math/big" ) func main() { // 创建

    46530

    第一阶段-Java基础知识:【第二章 Java基础语法知识】

    123.456 D:字符常量 'a','Z','0' E:布尔常量 true,false F:空常量 null (4)在Java中针对整数常量提供了四种表现形式 A:二进制 由0,1组成。...整数默认是int类型 声明long型常量的时候长整数要加L或者l 如:long l = 66666666666666L//否则报错 2....一个中文字符占据两用字节,Java中字符可以存储一个汉字,是 因为Java字符采用Unicode编码,每个字符占用两个字节。 6....分析过程: 我们想要知道结果是什么,就应该知道是如何计算的 而我们又知道计算机中数据的运算都是补码进行的 得到补码,首先要计算出数据的二进制 A: 求出130的二进制 10000010 130 是一个整数...我们在此部分不做过多的介绍,但要知道,String类是一个非常非常重要的类!!! 我们会在后面有专门一大篇介绍 ? ? 总结: 字符串和其他数据做加法运算的时候,结果是字符串类型。

    1.1K21

    Java 有运算符:算术、赋值、比较、三元、逻辑、位,且看运算符优先级如何处置

    ; 两个数值相加表示数学中的加法运算; 除号(/):整数在使用除号操作时,得到的结果仍为整数,小数部分会被直接忽略,而不是四舍五入,但是当整数除以0的时候,会引发算术异常(ArithmeticException...Exception in thread "main" java.lang.ArithmeticException: / by zero 正无穷大(Infinity):当一个正浮点类型数除以0时,或者正整数除以...运算符优先级 在程序设计中有众多运算符,运算符之间的操作会有先后之分,也称优先级,详情如下: 表中的优先级1 -- 14,优先级依次从高到低,同一级按表中从右到左,或者从左到右的顺序执行。...:类和对象访问它的成员时使用,如:Arrays.sort(); 空格( ):把一整个代码语句语句分割成几段,空格的使用次数不限,和英语中单词之间要使用空格是一样的。...JAVA 中算术运算符使用注意: 以上分隔符都必须都是半角下的英文符号; 要注意区分空格和空白,空格对应的是键盘上的空格键的输入,在Java中,空格是可以作为一个有效字符使用的,而空白相对于空格来说要宽泛得多

    1K20

    LeetCode-191.位1的个数(java)

    二、题目描述 题目:         编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。...提示:         请注意,在某些语言(如 Java)中,没有无符号整数类型。...在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。         ...在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的示例 3 中,输入表示有符号整数 -3。...我直接思如涌泉,最惯用的伎俩之暴力法,所以我们就先来尝试下暴力解题吧 思路1:暴力法         我们只需要判断是为1的进行次数加1,所以我们直接可以这么干,先把这串值转成一个string字符串,然后对字符串进行逐一遍历

    17420

    Leetcode No.190 颠倒二进制位

    提示: 请注意,在某些语言(如Java)中,没有无符号整数类型。...在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。...在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。...二、解题思路 这个问题重点是测试一个人对数据类型和位操作的基本知识。 在面试的时候逐位颠倒作为最直接的解决方案。 ? 尽管听起来很简单,但上述逻辑的不同实现产生不同的解决方案。...另一个例子是,为了组合反转位(例如 2^a,2^b)的结果,可以使用加法运算(即 2^a+2^b)或再次使用位或运算(即 2^a | 2^b)。 算法:在这里,我们将展示基于上述逻辑的实现示例。

    31820

    Java基础-Java基础-02总结关键字,标识符,注释,常量进制,变量数据类型

    组成规则: A:英文字母大小写 B:数字字符 C:$和_ 注意事项: A:不能以数字开头 B:不能是Java中的关键字 C:Java语言严格区分大小写 常见的命名规则:见名知意 举例:...字符常量 'a','A','0' E:布尔常量 true,false F:空常量 null(后面讲) (4)在Java中针对整数常量提供了四种表现形式 A:二进制 由0,1组成。...48 System.out.println('a'); System.out.println('a' + 1); /* 看程序写结果 通过字符和一个整数相加,我们给出一张表:ASCII码表。...System.out.println('a'); //a //输出一个字符和一个整数做加法 System.out.println('a'+1); //98 } } E:字符串参与运算 这里其实是字符串的连接...这里的+不是加法运算,而是字符串连接符。

    76950

    位运算中异或的常见用法总结

    第 136 号问题:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。...第 137 号问题:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。...,3*n,3*n + 1,这里的 n 是任意整数,假设你遍历数组,其实会有一个中间态就是 3*n + 2 存在,对于除这个数以外的其他数,过程大概是 3*n + 1 -> 3*n + 2 -> 3*n,...我们只要记录的就是 3*n + 1 和 3*n + 2的情况,因为 3*n 其实就是一个初始状态(n=0),记不记录和我们最后要返回的答案无关,而记录 3*n + 2 是为了恢复一些 bit 从 3*n...第 260 号问题:给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。

    1.3K50

    【每日算法Day 66】经典面试题:不用四则运算如何做加法?

    题目链接 LeetCode 面试题65. 不用加减乘除做加法[1] 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用 四则运算符号。...示例1 输入: a = 1, b = 1 输出: 2 提示 均可能是负数或 结果不会溢出 位整数 题解 因为不允许采用四则运算,所以只能考虑位运算了。 其实就是用二进制来模拟加法操作。...用一个实际的例子来演示一下,计算 的值,其中 表示每一步不考虑进位的求和, 表示每一步的进位,最后得到结果 ,也就是十进制的 : ? 但是这里还是用到了加法怎么办呢?...因为是二进制,所以不考虑进位求和的话,可以直接采用异或运算。而计算进位的话,直接用位与和左移一位就行了。...在 c++ 和 python 具体实现中,还有几个注意事项: LeetCode c++ 不允许负数左移操作,所以要转换成无符号整数。

    64920
    领券