ASCII



新建AsciiDemo.kt

举个栗子:获取a的ascii
fun main(args:Array<String>) {
//获取字符ascii编码
val c: Char = 'a'
//字符转成十进制
val value: Int = c.toInt()
println(value)//97
}
举个栗子:获取多个字符的ascii
//获取多个字符
val str:String = "I love you"
//遍历获取每个字符的ascii
val array = str.toCharArray()
val stringBuilder = StringBuilder()
for(ch in array){
//println(ch)
val result = ch.toInt()
stringBuilder.append(result.toString()+" ")
}
println(stringBuilder.toString())
改造以上的栗子
//获取多个字符
//获取多个字符
val str = "I love you"
//遍历获取每个字符的ascii
val array = str.toCharArray()
val result = with(StringBuilder()){
for(ch in array){
//println(ch)
val result = ch.toInt()
append(result.toString()+" ")
}
toString()
}
println(result)
凯撒加密算法

举个栗子:A->B
//移动字符
val c = 'A'//->B
//获取ascii
var ascii = c.toInt()
val key = 1
//移动
ascii += key
val result = ascii.toChar()
println(result)//B
加密字符串
class CaesarCrypt {
/**
* 加密
* @param command 原文
* @param key 密钥
*/
fun encrypt(command: String, key: Int): String {
val charArray = command.toCharArray()
return with(StringBuilder()) {
charArray.forEach {
var ascii = it.toInt()
ascii += key
append(ascii.toChar())
}
toString()
}
}
}
fun main(args: Array<String>) {
val command = "I love you"
val key = 1//密钥
println(CaesarCrypt().encrypt(command, key))
}

解密字符串
/**
* 解密
* @param command 加密的密文
* @param key 密钥
*/
fun decrypt(command: String, key: Int): String {
val charArray = command.toCharArray()
return with(StringBuilder()) {
charArray.forEach {
var ascii = it.toInt()
ascii -= key
append(ascii.toChar())
}
toString()
}
}
println(CaesarCrypt().decrypt("J!mpwf!zpv",1))
I love you


val ch = 'A'
val ascii = ch.toInt()
//二进制
val binary = Integer.toBinaryString(ascii)
println(binary)//1000001,8位,1个英文字符占1个字节
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。