val arg: { v: IntInf.int, b: string, oc: string, d: string, x: string} list = [ {v = 0, b = "0", oc = "0", d = "0", x = "0"}, {v = ~0, b = "~0", oc = "~0", d = "~0", x = "~0"}, {v = 1, b = "1", oc = "1", d = "1", x = "1"}, {v = ~1, b = "~1", oc = "~1", d = "~1", x = "~1"}, {v = 2, b = "10", oc = "2", d = "2", x = "2"}, {v = ~2, b = "~10", oc = "~2", d = "~2", x = "~2"}, {v = 3, b = "11", oc = "3", d = "3", x = "3"}, {v = ~3, b = "~11", oc = "~3", d = "~3", x = "~3"}, {v = 4, b = "100", oc = "4", d = "4", x = "4"}, {v = ~4, b = "~100", oc = "~4", d = "~4", x = "~4"}, {v = 5, b = "101", oc = "5", d = "5", x = "5"}, {v = ~5, b = "~101", oc = "~5", d = "~5", x = "~5"}, {v = 6, b = "110", oc = "6", d = "6", x = "6"}, {v = ~6, b = "~110", oc = "~6", d = "~6", x = "~6"}, {v = 7, b = "111", oc = "7", d = "7", x = "7"}, {v = ~7, b = "~111", oc = "~7", d = "~7", x = "~7"}, {v = 8, b = "1000", oc = "10", d = "8", x = "8"}, {v = ~8, b = "~1000", oc = "~10", d = "~8", x = "~8"}, {v = 9, b = "1001", oc = "11", d = "9", x = "9"}, {v = ~9, b = "~1001", oc = "~11", d = "~9", x = "~9"}, {v = 10, b = "1010", oc = "12", d = "10", x = "A"}, {v = ~10, b = "~1010", oc = "~12", d = "~10", x = "~A"}, {v = 11, b = "1011", oc = "13", d = "11", x = "B"}, {v = ~11, b = "~1011", oc = "~13", d = "~11", x = "~B"}, {v = 12, b = "1100", oc = "14", d = "12", x = "C"}, {v = ~12, b = "~1100", oc = "~14", d = "~12", x = "~C"}, {v = 13, b = "1101", oc = "15", d = "13", x = "D"}, {v = ~13, b = "~1101", oc = "~15", d = "~13", x = "~D"}, {v = 14, b = "1110", oc = "16", d = "14", x = "E"}, {v = ~14, b = "~1110", oc = "~16", d = "~14", x = "~E"}, {v = 15, b = "1111", oc = "17", d = "15", x = "F"}, {v = ~15, b = "~1111", oc = "~17", d = "~15", x = "~F"}, {v = 16, b = "10000", oc = "20", d = "16", x = "10"}, {v = ~16, b = "~10000", oc = "~20", d = "~16", x = "~10"}, {v = 17, b = "10001", oc = "21", d = "17", x = "11"}, {v = ~17, b = "~10001", oc = "~21", d = "~17", x = "~11"}, {v = 18, b = "10010", oc = "22", d = "18", x = "12"}, {v = ~18, b = "~10010", oc = "~22", d = "~18", x = "~12"}, {v = 19, b = "10011", oc = "23", d = "19", x = "13"}, {v = ~19, b = "~10011", oc = "~23", d = "~19", x = "~13"}, {v = 20, b = "10100", oc = "24", d = "20", x = "14"}, {v = ~20, b = "~10100", oc = "~24", d = "~20", x = "~14"}, {v = 21, b = "10101", oc = "25", d = "21", x = "15"}, {v = ~21, b = "~10101", oc = "~25", d = "~21", x = "~15"}, {v = 22, b = "10110", oc = "26", d = "22", x = "16"}, {v = ~22, b = "~10110", oc = "~26", d = "~22", x = "~16"}, {v = 23, b = "10111", oc = "27", d = "23", x = "17"}, {v = ~23, b = "~10111", oc = "~27", d = "~23", x = "~17"}, {v = 24, b = "11000", oc = "30", d = "24", x = "18"}, {v = ~24, b = "~11000", oc = "~30", d = "~24", x = "~18"}, {v = 25, b = "11001", oc = "31", d = "25", x = "19"}, {v = ~25, b = "~11001", oc = "~31", d = "~25", x = "~19"}, {v = 26, b = "11010", oc = "32", d = "26", x = "1A"}, {v = ~26, b = "~11010", oc = "~32", d = "~26", x = "~1A"}, {v = 27, b = "11011", oc = "33", d = "27", x = "1B"}, {v = ~27, b = "~11011", oc = "~33", d = "~27", x = "~1B"}, {v = 28, b = "11100", oc = "34", d = "28", x = "1C"}, {v = ~28, b = "~11100", oc = "~34", d = "~28", x = "~1C"}, {v = 29, b = "11101", oc = "35", d = "29", x = "1D"}, {v = ~29, b = "~11101", oc = "~35", d = "~29", x = "~1D"}, {v = 30, b = "11110", oc = "36", d = "30", x = "1E"}, {v = ~30, b = "~11110", oc = "~36", d = "~30", x = "~1E"}, {v = 31, b = "11111", oc = "37", d = "31", x = "1F"}, {v = ~31, b = "~11111", oc = "~37", d = "~31", x = "~1F"}, {v = 32, b = "100000", oc = "40", d = "32", x = "20"}, {v = ~32, b = "~100000", oc = "~40", d = "~32", x = "~20"}, {v = 33, b = "100001", oc = "41", d = "33", x = "21"}, {v = ~33, b = "~100001", oc = "~41", d = "~33", x = "~21"}, {v = 34, b = "100010", oc = "42", d = "34", x = "22"}, {v = ~34, b = "~100010", oc = "~42", d = "~34", x = "~22"}, {v = 35, b = "100011", oc = "43", d = "35", x = "23"}, {v = ~35, b = "~100011", oc = "~43", d = "~35", x = "~23"}, {v = 36, b = "100100", oc = "44", d = "36", x = "24"}, {v = ~36, b = "~100100", oc = "~44", d = "~36", x = "~24"}, {v = 37, b = "100101", oc = "45", d = "37", x = "25"}, {v = ~37, b = "~100101", oc = "~45", d = "~37", x = "~25"}, {v = 38, b = "100110", oc = "46", d = "38", x = "26"}, {v = ~38, b = "~100110", oc = "~46", d = "~38", x = "~26"}, {v = 39, b = "100111", oc = "47", d = "39", x = "27"}, {v = ~39, b = "~100111", oc = "~47", d = "~39", x = "~27"}, {v = 40, b = "101000", oc = "50", d = "40", x = "28"}, {v = ~40, b = "~101000", oc = "~50", d = "~40", x = "~28"}, {v = 41, b = "101001", oc = "51", d = "41", x = "29"}, {v = ~41, b = "~101001", oc = "~51", d = "~41", x = "~29"}, {v = 42, b = "101010", oc = "52", d = "42", x = "2A"}, {v = ~42, b = "~101010", oc = "~52", d = "~42", x = "~2A"}, {v = 43, b = "101011", oc = "53", d = "43", x = "2B"}, {v = ~43, b = "~101011", oc = "~53", d = "~43", x = "~2B"}, {v = 44, b = "101100", oc = "54", d = "44", x = "2C"}, {v = ~44, b = "~101100", oc = "~54", d = "~44", x = "~2C"}, {v = 45, b = "101101", oc = "55", d = "45", x = "2D"}, {v = ~45, b = "~101101", oc = "~55", d = "~45", x = "~2D"}, {v = 46, b = "101110", oc = "56", d = "46", x = "2E"}, {v = ~46, b = "~101110", oc = "~56", d = "~46", x = "~2E"}, {v = 47, b = "101111", oc = "57", d = "47", x = "2F"}, {v = ~47, b = "~101111", oc = "~57", d = "~47", x = "~2F"}, {v = 48, b = "110000", oc = "60", d = "48", x = "30"}, {v = ~48, b = "~110000", oc = "~60", d = "~48", x = "~30"}, {v = 49, b = "110001", oc = "61", d = "49", x = "31"}, {v = ~49, b = "~110001", oc = "~61", d = "~49", x = "~31"}, {v = 50, b = "110010", oc = "62", d = "50", x = "32"}, {v = ~50, b = "~110010", oc = "~62", d = "~50", x = "~32"}, {v = 51, b = "110011", oc = "63", d = "51", x = "33"}, {v = ~51, b = "~110011", oc = "~63", d = "~51", x = "~33"}, {v = 52, b = "110100", oc = "64", d = "52", x = "34"}, {v = ~52, b = "~110100", oc = "~64", d = "~52", x = "~34"}, {v = 53, b = "110101", oc = "65", d = "53", x = "35"}, {v = ~53, b = "~110101", oc = "~65", d = "~53", x = "~35"}, {v = 54, b = "110110", oc = "66", d = "54", x = "36"}, {v = ~54, b = "~110110", oc = "~66", d = "~54", x = "~36"}, {v = 55, b = "110111", oc = "67", d = "55", x = "37"}, {v = ~55, b = "~110111", oc = "~67", d = "~55", x = "~37"}, {v = 56, b = "111000", oc = "70", d = "56", x = "38"}, {v = ~56, b = "~111000", oc = "~70", d = "~56", x = "~38"}, {v = 57, b = "111001", oc = "71", d = "57", x = "39"}, {v = ~57, b = "~111001", oc = "~71", d = "~57", x = "~39"}, {v = 58, b = "111010", oc = "72", d = "58", x = "3A"}, {v = ~58, b = "~111010", oc = "~72", d = "~58", x = "~3A"}, {v = 59, b = "111011", oc = "73", d = "59", x = "3B"}, {v = ~59, b = "~111011", oc = "~73", d = "~59", x = "~3B"}, {v = 60, b = "111100", oc = "74", d = "60", x = "3C"}, {v = ~60, b = "~111100", oc = "~74", d = "~60", x = "~3C"}, {v = 61, b = "111101", oc = "75", d = "61", x = "3D"}, {v = ~61, b = "~111101", oc = "~75", d = "~61", x = "~3D"}, {v = 62, b = "111110", oc = "76", d = "62", x = "3E"}, {v = ~62, b = "~111110", oc = "~76", d = "~62", x = "~3E"}, {v = 63, b = "111111", oc = "77", d = "63", x = "3F"}, {v = ~63, b = "~111111", oc = "~77", d = "~63", x = "~3F"}, {v = 64, b = "1000000", oc = "100", d = "64", x = "40"}, {v = ~64, b = "~1000000", oc = "~100", d = "~64", x = "~40"}, {v = 65, b = "1000001", oc = "101", d = "65", x = "41"}, {v = ~65, b = "~1000001", oc = "~101", d = "~65", x = "~41"}, {v = 66, b = "1000010", oc = "102", d = "66", x = "42"}, {v = ~66, b = "~1000010", oc = "~102", d = "~66", x = "~42"}, {v = 67, b = "1000011", oc = "103", d = "67", x = "43"}, {v = ~67, b = "~1000011", oc = "~103", d = "~67", x = "~43"}, {v = 68, b = "1000100", oc = "104", d = "68", x = "44"}, {v = ~68, b = "~1000100", oc = "~104", d = "~68", x = "~44"}, {v = 69, b = "1000101", oc = "105", d = "69", x = "45"}, {v = ~69, b = "~1000101", oc = "~105", d = "~69", x = "~45"}, {v = 70, b = "1000110", oc = "106", d = "70", x = "46"}, {v = ~70, b = "~1000110", oc = "~106", d = "~70", x = "~46"}, {v = 71, b = "1000111", oc = "107", d = "71", x = "47"}, {v = ~71, b = "~1000111", oc = "~107", d = "~71", x = "~47"}, {v = 72, b = "1001000", oc = "110", d = "72", x = "48"}, {v = ~72, b = "~1001000", oc = "~110", d = "~72", x = "~48"}, {v = 73, b = "1001001", oc = "111", d = "73", x = "49"}, {v = ~73, b = "~1001001", oc = "~111", d = "~73", x = "~49"}, {v = 74, b = "1001010", oc = "112", d = "74", x = "4A"}, {v = ~74, b = "~1001010", oc = "~112", d = "~74", x = "~4A"}, {v = 75, b = "1001011", oc = "113", d = "75", x = "4B"}, {v = ~75, b = "~1001011", oc = "~113", d = "~75", x = "~4B"}, {v = 76, b = "1001100", oc = "114", d = "76", x = "4C"}, {v = ~76, b = "~1001100", oc = "~114", d = "~76", x = "~4C"}, {v = 77, b = "1001101", oc = "115", d = "77", x = "4D"}, {v = ~77, b = "~1001101", oc = "~115", d = "~77", x = "~4D"}, {v = 78, b = "1001110", oc = "116", d = "78", x = "4E"}, {v = ~78, b = "~1001110", oc = "~116", d = "~78", x = "~4E"}, {v = 79, b = "1001111", oc = "117", d = "79", x = "4F"}, {v = ~79, b = "~1001111", oc = "~117", d = "~79", x = "~4F"}, {v = 80, b = "1010000", oc = "120", d = "80", x = "50"}, {v = ~80, b = "~1010000", oc = "~120", d = "~80", x = "~50"}, {v = 81, b = "1010001", oc = "121", d = "81", x = "51"}, {v = ~81, b = "~1010001", oc = "~121", d = "~81", x = "~51"}, {v = 82, b = "1010010", oc = "122", d = "82", x = "52"}, {v = ~82, b = "~1010010", oc = "~122", d = "~82", x = "~52"}, {v = 83, b = "1010011", oc = "123", d = "83", x = "53"}, {v = ~83, b = "~1010011", oc = "~123", d = "~83", x = "~53"}, {v = 84, b = "1010100", oc = "124", d = "84", x = "54"}, {v = ~84, b = "~1010100", oc = "~124", d = "~84", x = "~54"}, {v = 85, b = "1010101", oc = "125", d = "85", x = "55"}, {v = ~85, b = "~1010101", oc = "~125", d = "~85", x = "~55"}, {v = 86, b = "1010110", oc = "126", d = "86", x = "56"}, {v = ~86, b = "~1010110", oc = "~126", d = "~86", x = "~56"}, {v = 87, b = "1010111", oc = "127", d = "87", x = "57"}, {v = ~87, b = "~1010111", oc = "~127", d = "~87", x = "~57"}, {v = 88, b = "1011000", oc = "130", d = "88", x = "58"}, {v = ~88, b = "~1011000", oc = "~130", d = "~88", x = "~58"}, {v = 89, b = "1011001", oc = "131", d = "89", x = "59"}, {v = ~89, b = "~1011001", oc = "~131", d = "~89", x = "~59"}, {v = 90, b = "1011010", oc = "132", d = "90", x = "5A"}, {v = ~90, b = "~1011010", oc = "~132", d = "~90", x = "~5A"}, {v = 91, b = "1011011", oc = "133", d = "91", x = "5B"}, {v = ~91, b = "~1011011", oc = "~133", d = "~91", x = "~5B"}, {v = 92, b = "1011100", oc = "134", d = "92", x = "5C"}, {v = ~92, b = "~1011100", oc = "~134", d = "~92", x = "~5C"}, {v = 93, b = "1011101", oc = "135", d = "93", x = "5D"}, {v = ~93, b = "~1011101", oc = "~135", d = "~93", x = "~5D"}, {v = 94, b = "1011110", oc = "136", d = "94", x = "5E"}, {v = ~94, b = "~1011110", oc = "~136", d = "~94", x = "~5E"}, {v = 95, b = "1011111", oc = "137", d = "95", x = "5F"}, {v = ~95, b = "~1011111", oc = "~137", d = "~95", x = "~5F"}, {v = 96, b = "1100000", oc = "140", d = "96", x = "60"}, {v = ~96, b = "~1100000", oc = "~140", d = "~96", x = "~60"}, {v = 97, b = "1100001", oc = "141", d = "97", x = "61"}, {v = ~97, b = "~1100001", oc = "~141", d = "~97", x = "~61"}, {v = 98, b = "1100010", oc = "142", d = "98", x = "62"}, {v = ~98, b = "~1100010", oc = "~142", d = "~98", x = "~62"}, {v = 99, b = "1100011", oc = "143", d = "99", x = "63"}, {v = ~99, b = "~1100011", oc = "~143", d = "~99", x = "~63"}, {v = 128, b = "10000000", oc = "200", d = "128", x = "80"}, {v = ~128, b = "~10000000", oc = "~200", d = "~128", x = "~80"}, {v = 256, b = "100000000", oc = "400", d = "256", x = "100"}, {v = ~256, b = "~100000000", oc = "~400", d = "~256", x = "~100"}, {v = 512, b = "1000000000", oc = "1000", d = "512", x = "200"}, {v = ~512, b = "~1000000000", oc = "~1000", d = "~512", x = "~200"}, {v = 1024, b = "10000000000", oc = "2000", d = "1024", x = "400"}, {v = ~1024, b = "~10000000000", oc = "~2000", d = "~1024", x = "~400"}, {v = 2048, b = "100000000000", oc = "4000", d = "2048", x = "800"}, {v = ~2048, b = "~100000000000", oc = "~4000", d = "~2048", x = "~800"}, {v = 4096, b = "1000000000000", oc = "10000", d = "4096", x = "1000"}, {v = ~4096, b = "~1000000000000", oc = "~10000", d = "~4096", x = "~1000"}, {v = 8192, b = "10000000000000", oc = "20000", d = "8192", x = "2000"}, {v = ~8192, b = "~10000000000000", oc = "~20000", d = "~8192", x = "~2000"}, {v = 16384, b = "100000000000000", oc = "40000", d = "16384", x = "4000"}, {v = ~16384, b = "~100000000000000", oc = "~40000", d = "~16384", x = "~4000"}, {v = 32768, b = "1000000000000000", oc = "100000", d = "32768", x = "8000"}, {v = ~32768, b = "~1000000000000000", oc = "~100000", d = "~32768", x = "~8000"}, {v = 65536, b = "10000000000000000", oc = "200000", d = "65536", x = "10000"}, {v = ~65536, b = "~10000000000000000", oc = "~200000", d = "~65536", x = "~10000"}, {v = 131072, b = "100000000000000000", oc = "400000", d = "131072", x = "20000"}, {v = ~131072, b = "~100000000000000000", oc = "~400000", d = "~131072", x = "~20000"}, {v = 262144, b = "1000000000000000000", oc = "1000000", d = "262144", x = "40000"}, {v = ~262144, b = "~1000000000000000000", oc = "~1000000", d = "~262144", x = "~40000"}, {v = 524288, b = "10000000000000000000", oc = "2000000", d = "524288", x = "80000"}, {v = ~524288, b = "~10000000000000000000", oc = "~2000000", d = "~524288", x = "~80000"}, {v = 1048576, b = "100000000000000000000", oc = "4000000", d = "1048576", x = "100000"}, {v = ~1048576, b = "~100000000000000000000", oc = "~4000000", d = "~1048576", x = "~100000"}, {v = 2097152, b = "1000000000000000000000", oc = "10000000", d = "2097152", x = "200000"}, {v = ~2097152, b = "~1000000000000000000000", oc = "~10000000", d = "~2097152", x = "~200000"}, {v = 4194304, b = "10000000000000000000000", oc = "20000000", d = "4194304", x = "400000"}, {v = ~4194304, b = "~10000000000000000000000", oc = "~20000000", d = "~4194304", x = "~400000"}, {v = 8388608, b = "100000000000000000000000", oc = "40000000", d = "8388608", x = "800000"}, {v = ~8388608, b = "~100000000000000000000000", oc = "~40000000", d = "~8388608", x = "~800000"}, {v = 16777216, b = "1000000000000000000000000", oc = "100000000", d = "16777216", x = "1000000"}, {v = ~16777216, b = "~1000000000000000000000000", oc = "~100000000", d = "~16777216", x = "~1000000"}, {v = 33554432, b = "10000000000000000000000000", oc = "200000000", d = "33554432", x = "2000000"}, {v = ~33554432, b = "~10000000000000000000000000", oc = "~200000000", d = "~33554432", x = "~2000000"}, {v = 67108864, b = "100000000000000000000000000", oc = "400000000", d = "67108864", x = "4000000"}, {v = ~67108864, b = "~100000000000000000000000000", oc = "~400000000", d = "~67108864", x = "~4000000"}, {v = 100000000, b = "101111101011110000100000000", oc = "575360400", d = "100000000", x = "5F5E100"}, {v = ~100000000, b = "~101111101011110000100000000", oc = "~575360400", d = "~100000000", x = "~5F5E100"}, {v = 134217728, b = "1000000000000000000000000000", oc = "1000000000", d = "134217728", x = "8000000"}, {v = ~134217728, b = "~1000000000000000000000000000", oc = "~1000000000", d = "~134217728", x = "~8000000"}, {v = 268435456, b = "10000000000000000000000000000", oc = "2000000000", d = "268435456", x = "10000000"}, {v = ~268435456, b = "~10000000000000000000000000000", oc = "~2000000000", d = "~268435456", x = "~10000000"}, {v = 536870912, b = "100000000000000000000000000000", oc = "4000000000", d = "536870912", x = "20000000"}, {v = ~536870912, b = "~100000000000000000000000000000", oc = "~4000000000", d = "~536870912", x = "~20000000"}, {v = 1073741822, b = "111111111111111111111111111110", oc = "7777777776", d = "1073741822", x = "3FFFFFFE"}, {v = ~1073741822, b = "~111111111111111111111111111110", oc = "~7777777776", d = "~1073741822", x = "~3FFFFFFE"}, {v = 1073741823, b = "111111111111111111111111111111", oc = "7777777777", d = "1073741823", x = "3FFFFFFF"}, {v = ~1073741823, b = "~111111111111111111111111111111", oc = "~7777777777", d = "~1073741823", x = "~3FFFFFFF"}, {v = 1073741824, b = "1000000000000000000000000000000", oc = "10000000000", d = "1073741824", x = "40000000"}, {v = ~1073741824, b = "~1000000000000000000000000000000", oc = "~10000000000", d = "~1073741824", x = "~40000000"}, {v = 1073741825, b = "1000000000000000000000000000001", oc = "10000000001", d = "1073741825", x = "40000001"}, {v = ~1073741825, b = "~1000000000000000000000000000001", oc = "~10000000001", d = "~1073741825", x = "~40000001"}, {v = 1073741826, b = "1000000000000000000000000000010", oc = "10000000002", d = "1073741826", x = "40000002"}, {v = ~1073741826, b = "~1000000000000000000000000000010", oc = "~10000000002", d = "~1073741826", x = "~40000002"}, {v = 2147483648, b = "10000000000000000000000000000000", oc = "20000000000", d = "2147483648", x = "80000000"}, {v = ~2147483648, b = "~10000000000000000000000000000000", oc = "~20000000000", d = "~2147483648", x = "~80000000"}, {v = 4294967296, b = "100000000000000000000000000000000", oc = "40000000000", d = "4294967296", x = "100000000"}, {v = ~4294967296, b = "~100000000000000000000000000000000", oc = "~40000000000", d = "~4294967296", x = "~100000000"}, {v = 4304967296, b = "100000000100110001001011010000000", oc = "40046113200", d = "4304967296", x = "100989680"}, {v = ~4304967296, b = "~100000000100110001001011010000000", oc = "~40046113200", d = "~4304967296", x = "~100989680"}, {v = 8589934592, b = "1000000000000000000000000000000000", oc = "100000000000", d = "8589934592", x = "200000000"}, {v = ~8589934592, b = "~1000000000000000000000000000000000", oc = "~100000000000", d = "~8589934592", x = "~200000000"}, {v = 17179869184, b = "10000000000000000000000000000000000", oc = "200000000000", d = "17179869184", x = "400000000"}, {v = ~17179869184, b = "~10000000000000000000000000000000000", oc = "~200000000000", d = "~17179869184", x = "~400000000"}, {v = 34359738368, b = "100000000000000000000000000000000000", oc = "400000000000", d = "34359738368", x = "800000000"}, {v = ~34359738368, b = "~100000000000000000000000000000000000", oc = "~400000000000", d = "~34359738368", x = "~800000000"}, {v = 68719476736, b = "1000000000000000000000000000000000000", oc = "1000000000000", d = "68719476736", x = "1000000000"}, {v = ~68719476736, b = "~1000000000000000000000000000000000000", oc = "~1000000000000", d = "~68719476736", x = "~1000000000"}, {v = 137438953472, b = "10000000000000000000000000000000000000", oc = "2000000000000", d = "137438953472", x = "2000000000"}, {v = ~137438953472, b = "~10000000000000000000000000000000000000", oc = "~2000000000000", d = "~137438953472", x = "~2000000000"}, {v = 274877906944, b = "100000000000000000000000000000000000000", oc = "4000000000000", d = "274877906944", x = "4000000000"}, {v = ~274877906944, b = "~100000000000000000000000000000000000000", oc = "~4000000000000", d = "~274877906944", x = "~4000000000"}, {v = 549755813888, b = "1000000000000000000000000000000000000000", oc = "10000000000000", d = "549755813888", x = "8000000000"}, {v = ~549755813888, b = "~1000000000000000000000000000000000000000", oc = "~10000000000000", d = "~549755813888", x = "~8000000000"}, {v = 1099511627776, b = "10000000000000000000000000000000000000000", oc = "20000000000000", d = "1099511627776", x = "10000000000"}, {v = ~1099511627776, b = "~10000000000000000000000000000000000000000", oc = "~20000000000000", d = "~1099511627776", x = "~10000000000"}, {v = 2199023255552, b = "100000000000000000000000000000000000000000", oc = "40000000000000", d = "2199023255552", x = "20000000000"}, {v = ~2199023255552, b = "~100000000000000000000000000000000000000000", oc = "~40000000000000", d = "~2199023255552", x = "~20000000000"}, {v = 4398046511104, b = "1000000000000000000000000000000000000000000", oc = "100000000000000", d = "4398046511104", x = "40000000000"}, {v = ~4398046511104, b = "~1000000000000000000000000000000000000000000", oc = "~100000000000000", d = "~4398046511104", x = "~40000000000"}, {v = 8796093022208, b = "10000000000000000000000000000000000000000000", oc = "200000000000000", d = "8796093022208", x = "80000000000"}, {v = ~8796093022208, b = "~10000000000000000000000000000000000000000000", oc = "~200000000000000", d = "~8796093022208", x = "~80000000000"}, {v = 17592186044416, b = "100000000000000000000000000000000000000000000", oc = "400000000000000", d = "17592186044416", x = "100000000000"}, {v = ~17592186044416, b = "~100000000000000000000000000000000000000000000", oc = "~400000000000000", d = "~17592186044416", x = "~100000000000"}, {v = 35184372088832, b = "1000000000000000000000000000000000000000000000", oc = "1000000000000000", d = "35184372088832", x = "200000000000"}, {v = ~35184372088832, b = "~1000000000000000000000000000000000000000000000", oc = "~1000000000000000", d = "~35184372088832", x = "~200000000000"}, {v = 70368744177664, b = "10000000000000000000000000000000000000000000000", oc = "2000000000000000", d = "70368744177664", x = "400000000000"}, {v = ~70368744177664, b = "~10000000000000000000000000000000000000000000000", oc = "~2000000000000000", d = "~70368744177664", x = "~400000000000"}, {v = 140737488355328, b = "100000000000000000000000000000000000000000000000", oc = "4000000000000000", d = "140737488355328", x = "800000000000"}, {v = ~140737488355328, b = "~100000000000000000000000000000000000000000000000", oc = "~4000000000000000", d = "~140737488355328", x = "~800000000000"}, {v = 281474976710656, b = "1000000000000000000000000000000000000000000000000", oc = "10000000000000000", d = "281474976710656", x = "1000000000000"}, {v = ~281474976710656, b = "~1000000000000000000000000000000000000000000000000", oc = "~10000000000000000", d = "~281474976710656", x = "~1000000000000"}, {v = 562949953421312, b = "10000000000000000000000000000000000000000000000000", oc = "20000000000000000", d = "562949953421312", x = "2000000000000"}, {v = ~562949953421312, b = "~10000000000000000000000000000000000000000000000000", oc = "~20000000000000000", d = "~562949953421312", x = "~2000000000000"}, {v = 1125899906842624, b = "100000000000000000000000000000000000000000000000000", oc = "40000000000000000", d = "1125899906842624", x = "4000000000000"}, {v = ~1125899906842624, b = "~100000000000000000000000000000000000000000000000000", oc = "~40000000000000000", d = "~1125899906842624", x = "~4000000000000"}, {v = 2251799813685248, b = "1000000000000000000000000000000000000000000000000000", oc = "100000000000000000", d = "2251799813685248", x = "8000000000000"}, {v = ~2251799813685248, b = "~1000000000000000000000000000000000000000000000000000", oc = "~100000000000000000", d = "~2251799813685248", x = "~8000000000000"}, {v = 4503599627370496, b = "10000000000000000000000000000000000000000000000000000", oc = "200000000000000000", d = "4503599627370496", x = "10000000000000"}, {v = ~4503599627370496, b = "~10000000000000000000000000000000000000000000000000000", oc = "~200000000000000000", d = "~4503599627370496", x = "~10000000000000"}, {v = 9007199254740992, b = "100000000000000000000000000000000000000000000000000000", oc = "400000000000000000", d = "9007199254740992", x = "20000000000000"}, {v = ~9007199254740992, b = "~100000000000000000000000000000000000000000000000000000", oc = "~400000000000000000", d = "~9007199254740992", x = "~20000000000000"}, {v = 18014398509481984, b = "1000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000", d = "18014398509481984", x = "40000000000000"}, {v = ~18014398509481984, b = "~1000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000", d = "~18014398509481984", x = "~40000000000000"}, {v = 36028797018963968, b = "10000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000", d = "36028797018963968", x = "80000000000000"}, {v = ~36028797018963968, b = "~10000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000", d = "~36028797018963968", x = "~80000000000000"}, {v = 72057594037927936, b = "100000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000", d = "72057594037927936", x = "100000000000000"}, {v = ~72057594037927936, b = "~100000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000", d = "~72057594037927936", x = "~100000000000000"}, {v = 144115188075855872, b = "1000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000", d = "144115188075855872", x = "200000000000000"}, {v = ~144115188075855872, b = "~1000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000", d = "~144115188075855872", x = "~200000000000000"}, {v = 288230376151711744, b = "10000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000", d = "288230376151711744", x = "400000000000000"}, {v = ~288230376151711744, b = "~10000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000", d = "~288230376151711744", x = "~400000000000000"}, {v = 576460752303423488, b = "100000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000", d = "576460752303423488", x = "800000000000000"}, {v = ~576460752303423488, b = "~100000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000", d = "~576460752303423488", x = "~800000000000000"}, {v = 1152921504606846976, b = "1000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000", d = "1152921504606846976", x = "1000000000000000"}, {v = ~1152921504606846976, b = "~1000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000", d = "~1152921504606846976", x = "~1000000000000000"}, {v = 2305843009213693952, b = "10000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000", d = "2305843009213693952", x = "2000000000000000"}, {v = ~2305843009213693952, b = "~10000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000", d = "~2305843009213693952", x = "~2000000000000000"}, {v = 4611686018427387904, b = "100000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000", d = "4611686018427387904", x = "4000000000000000"}, {v = ~4611686018427387904, b = "~100000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000", d = "~4611686018427387904", x = "~4000000000000000"}, {v = 9223372036854775808, b = "1000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000", d = "9223372036854775808", x = "8000000000000000"}, {v = ~9223372036854775808, b = "~1000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000", d = "~9223372036854775808", x = "~8000000000000000"}, {v = 18446744073709551616, b = "10000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000", d = "18446744073709551616", x = "10000000000000000"}, {v = ~18446744073709551616, b = "~10000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000", d = "~18446744073709551616", x = "~10000000000000000"}, {v = 36893488147419103232, b = "100000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000", d = "36893488147419103232", x = "20000000000000000"}, {v = ~36893488147419103232, b = "~100000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000", d = "~36893488147419103232", x = "~20000000000000000"}, {v = 73786976294838206464, b = "1000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000", d = "73786976294838206464", x = "40000000000000000"}, {v = ~73786976294838206464, b = "~1000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000", d = "~73786976294838206464", x = "~40000000000000000"}, {v = 147573952589676412928, b = "10000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000", d = "147573952589676412928", x = "80000000000000000"}, {v = ~147573952589676412928, b = "~10000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000", d = "~147573952589676412928", x = "~80000000000000000"}, {v = 295147905179352825856, b = "100000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000", d = "295147905179352825856", x = "100000000000000000"}, {v = ~295147905179352825856, b = "~100000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000", d = "~295147905179352825856", x = "~100000000000000000"}, {v = 590295810358705651712, b = "1000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000", d = "590295810358705651712", x = "200000000000000000"}, {v = ~590295810358705651712, b = "~1000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000", d = "~590295810358705651712", x = "~200000000000000000"}, {v = 1180591620717411303424, b = "10000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000", d = "1180591620717411303424", x = "400000000000000000"}, {v = ~1180591620717411303424, b = "~10000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000", d = "~1180591620717411303424", x = "~400000000000000000"}, {v = 2361183241434822606848, b = "100000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000", d = "2361183241434822606848", x = "800000000000000000"}, {v = ~2361183241434822606848, b = "~100000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000", d = "~2361183241434822606848", x = "~800000000000000000"}, {v = 4722366482869645213696, b = "1000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000", d = "4722366482869645213696", x = "1000000000000000000"}, {v = ~4722366482869645213696, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000", d = "~4722366482869645213696", x = "~1000000000000000000"}, {v = 9444732965739290427392, b = "10000000000000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000000", d = "9444732965739290427392", x = "2000000000000000000"}, {v = ~9444732965739290427392, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000000", d = "~9444732965739290427392", x = "~2000000000000000000"}, {v = 18889465931478580854784, b = "100000000000000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000000", d = "18889465931478580854784", x = "4000000000000000000"}, {v = ~18889465931478580854784, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000000", d = "~18889465931478580854784", x = "~4000000000000000000"}, {v = 37778931862957161709568, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000000", d = "37778931862957161709568", x = "8000000000000000000"}, {v = ~37778931862957161709568, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000000", d = "~37778931862957161709568", x = "~8000000000000000000"}, {v = 75557863725914323419136, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000000", d = "75557863725914323419136", x = "10000000000000000000"}, {v = ~75557863725914323419136, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000000", d = "~75557863725914323419136", x = "~10000000000000000000"}, {v = 151115727451828646838272, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000000", d = "151115727451828646838272", x = "20000000000000000000"}, {v = ~151115727451828646838272, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000000", d = "~151115727451828646838272", x = "~20000000000000000000"}, {v = 302231454903657293676544, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000000", d = "302231454903657293676544", x = "40000000000000000000"}, {v = ~302231454903657293676544, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000000", d = "~302231454903657293676544", x = "~40000000000000000000"}, {v = 604462909807314587353088, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000000", d = "604462909807314587353088", x = "80000000000000000000"}, {v = ~604462909807314587353088, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000000", d = "~604462909807314587353088", x = "~80000000000000000000"}, {v = 1208925819614629174706176, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000000", d = "1208925819614629174706176", x = "100000000000000000000"}, {v = ~1208925819614629174706176, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000000", d = "~1208925819614629174706176", x = "~100000000000000000000"}, {v = 2417851639229258349412352, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000000", d = "2417851639229258349412352", x = "200000000000000000000"}, {v = ~2417851639229258349412352, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000000", d = "~2417851639229258349412352", x = "~200000000000000000000"}, {v = 4835703278458516698824704, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000000000", d = "4835703278458516698824704", x = "400000000000000000000"}, {v = ~4835703278458516698824704, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000000000", d = "~4835703278458516698824704", x = "~400000000000000000000"}, {v = 9671406556917033397649408, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000000000", d = "9671406556917033397649408", x = "800000000000000000000"}, {v = ~9671406556917033397649408, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000000000", d = "~9671406556917033397649408", x = "~800000000000000000000"}, {v = 19342813113834066795298816, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000000000", d = "19342813113834066795298816", x = "1000000000000000000000"}, {v = ~19342813113834066795298816, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000000000", d = "~19342813113834066795298816", x = "~1000000000000000000000"}, {v = 38685626227668133590597632, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000000000", d = "38685626227668133590597632", x = "2000000000000000000000"}, {v = ~38685626227668133590597632, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000000000", d = "~38685626227668133590597632", x = "~2000000000000000000000"}, {v = 77371252455336267181195264, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000000000", d = "77371252455336267181195264", x = "4000000000000000000000"}, {v = ~77371252455336267181195264, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000000000", d = "~77371252455336267181195264", x = "~4000000000000000000000"}, {v = 154742504910672534362390528, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000000000", d = "154742504910672534362390528", x = "8000000000000000000000"}, {v = ~154742504910672534362390528, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000000000", d = "~154742504910672534362390528", x = "~8000000000000000000000"}, {v = 309485009821345068724781056, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000000000", d = "309485009821345068724781056", x = "10000000000000000000000"}, {v = ~309485009821345068724781056, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000000000", d = "~309485009821345068724781056", x = "~10000000000000000000000"}, {v = 618970019642690137449562112, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000000000", d = "618970019642690137449562112", x = "20000000000000000000000"}, {v = ~618970019642690137449562112, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000000000", d = "~618970019642690137449562112", x = "~20000000000000000000000"}, {v = 1237940039285380274899124224, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000000000", d = "1237940039285380274899124224", x = "40000000000000000000000"}, {v = ~1237940039285380274899124224, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000000000", d = "~1237940039285380274899124224", x = "~40000000000000000000000"}, {v = 2475880078570760549798248448, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000000000000", d = "2475880078570760549798248448", x = "80000000000000000000000"}, {v = ~2475880078570760549798248448, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000000000000", d = "~2475880078570760549798248448", x = "~80000000000000000000000"}, {v = 4951760157141521099596496896, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000000000000", d = "4951760157141521099596496896", x = "100000000000000000000000"}, {v = ~4951760157141521099596496896, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000000000000", d = "~4951760157141521099596496896", x = "~100000000000000000000000"}, {v = 9903520314283042199192993792, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000000000000", d = "9903520314283042199192993792", x = "200000000000000000000000"}, {v = ~9903520314283042199192993792, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000000000000", d = "~9903520314283042199192993792", x = "~200000000000000000000000"}, {v = 19807040628566084398385987584, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000000000000", d = "19807040628566084398385987584", x = "400000000000000000000000"}, {v = ~19807040628566084398385987584, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000000000000", d = "~19807040628566084398385987584", x = "~400000000000000000000000"}, {v = 39614081257132168796771975168, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000000000000", d = "39614081257132168796771975168", x = "800000000000000000000000"}, {v = ~39614081257132168796771975168, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000000000000", d = "~39614081257132168796771975168", x = "~800000000000000000000000"}, {v = 79228162514264337593543950336, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000000000000", d = "79228162514264337593543950336", x = "1000000000000000000000000"}, {v = ~79228162514264337593543950336, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000000000000", d = "~79228162514264337593543950336", x = "~1000000000000000000000000"}, {v = 158456325028528675187087900672, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000000000000", d = "158456325028528675187087900672", x = "2000000000000000000000000"}, {v = ~158456325028528675187087900672, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000000000000", d = "~158456325028528675187087900672", x = "~2000000000000000000000000"}, {v = 316912650057057350374175801344, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000000000000", d = "316912650057057350374175801344", x = "4000000000000000000000000"}, {v = ~316912650057057350374175801344, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000000000000", d = "~316912650057057350374175801344", x = "~4000000000000000000000000"}, {v = 633825300114114700748351602688, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000000000000", d = "633825300114114700748351602688", x = "8000000000000000000000000"}, {v = ~633825300114114700748351602688, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000000000000", d = "~633825300114114700748351602688", x = "~8000000000000000000000000"} ] fun makeReader str = let val len = String.size str fun reader pos = if pos = String.size str then NONE else SOME (String.sub (str, pos), pos + 1) in reader end exception FailRead of StringCvt.radix * string exception FailWrite of StringCvt.radix * IntInf.int fun read2 str = case IntInf.scan StringCvt.BIN (makeReader str) 0 of NONE => raise (FailRead (StringCvt.BIN, str)) | SOME (v, p) => if p = String.size str then v else raise (FailRead (StringCvt.BIN, str)) fun read8 str = case IntInf.scan StringCvt.OCT (makeReader str) 0 of NONE => raise (FailRead (StringCvt.OCT, str)) | SOME (v, p) => if p = String.size str then v else raise (FailRead (StringCvt.OCT, str)) fun read10 str = case IntInf.scan StringCvt.DEC (makeReader str) 0 of NONE => raise (FailRead (StringCvt.DEC, str)) | SOME (v, p) => if p = String.size str then v else raise (FailRead (StringCvt.DEC, str)) fun read16 str = case IntInf.scan StringCvt.HEX (makeReader str) 0 of NONE => raise (FailRead (StringCvt.HEX, str)) | SOME (v, p) => if p = String.size str then v else raise (FailRead (StringCvt.HEX, str)) fun read str = case IntInf.fromString str of NONE => raise (FailRead (StringCvt.DEC, str)) | SOME v => v fun toStr2 v = IntInf.fmt StringCvt.BIN v fun toStr8 v = IntInf.fmt StringCvt.OCT v fun toStr10 v = IntInf.fmt StringCvt.DEC v fun toStr16 v = IntInf.fmt StringCvt.HEX v fun toStr v = IntInf.toString v fun baseToStr (base: StringCvt.radix): string = case base of StringCvt.BIN => "BIN" | StringCvt.OCT => "OCT" | StringCvt.DEC => "DEC" | StringCvt.HEX => "HEX" fun f ({ v: IntInf.int, b: string, oc: string, d: string, x: string}): unit = let val bv = read2 b val ov = read8 oc val dv = read10 d val xv = read16 x val vv = read d in if bv <> v then raise (FailRead (StringCvt.BIN, b)) else if ov <> v then raise (FailRead (StringCvt.OCT, oc)) else if dv <> v then raise (FailRead (StringCvt.DEC, d)) else if xv <> v then raise (FailRead (StringCvt.HEX, x)) else if vv <> v then raise (FailRead (StringCvt.DEC, d)) else let val vb = toStr2 v val vo = toStr8 v val vd = toStr10 v val vx = toStr16 v val vv = toStr v val (b, oc, d, x) = if v = 0 andalso String.sub (d, 0) = #"~" then ("0", "0", "0", "0") else (b, oc, d, x) in if vb <> b then raise (FailWrite (StringCvt.BIN, v)) else if vo <> oc then raise (FailWrite (StringCvt.OCT, v)) else if vd <> d then raise (FailWrite (StringCvt.DEC, v)) else if vx <> x then raise (FailWrite (StringCvt.HEX, v)) else if vv <> d then raise (FailWrite (StringCvt.DEC, v)) else () end end handle FailRead (base, str) => print ("FailRead, base = " ^ (baseToStr base) ^ ", str = |" ^ str ^ "|\n") | FailWrite (base, v) => print ("FailWrite, base = " ^ (baseToStr base) ^ ", d = |" ^ d ^ "|\n") val _ = List.app f arg val _ = print "All ok\n"